Elixir for Data Science [closed] - python

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 5 years ago.
Improve this question
I recently started playing with Elixir and some patterns remind me of Python, which is widely used in data science projects. For example list comprehensions or anonymous functions.
Considering the high performance of Elixir and the ability to run multiple processes and deal with asynchronous tasks it seams to me to be a very good fit for Data Science projects.
Am I missing a point? Does somebody have experience with this?

I'm an advocate for using the right tool for the job. There are typically two requirements to do data science:
Libraries (because you don't want to reinvent the wheel at every corner)
Performance (particularly if dealing with large amounts of data)
Python and R are the right tools. They offer the largest number of high-quality libraries, and though slow on their own, they perform well thanks to libraries written and optimized in fast languages like C and Fortran.
Some like alternatives like Julia and Scala. These are faster languages on their own and have a decent amount of libraries, though you might still run into some situations where suitable libraries are available in Python or R, but not Julia or Scala.
With languages like Elixir, you're are for the most part on your own. The amount of data science specific libraries is limited, and the Elixir community - though wonderful - is mostly focused on distributed computing and web development, so don't count on lots of support there.
In short, can you? Technically yes, and there is no harm in experimenting, but you're making your life significantly harder.
Keep also in mind that, contrary to popular belief, Elixir is not a fast language when it comes to single-thread performance. Depending on the task at hand, you'll find that Ruby is just as fast or even faster in some instances.
Don't get me wrong, Elixir is a great language and it's amazing at what it does best, it's just that it's not the kind of language I'd reach out to first for mathematical computations.

Data Science is very broad topic there many things involved, I would like to add my 2 cents you sure can do data science in elixir but it may not do certain things very well like some of the other tools do, but you can get pretty far I use elixir for data cleaning and data formatting.
There are other folks that are doing data related stuff with elixir/erlang
https://moz.com/devblog/moz-analytics-db-free/ and there is disco that allows you run MapReduce jobs in erlang
https://github.com/discoproject/disco

Related

How different is GDscript from 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 21 days ago.
Improve this question
I recently started developing games on Godot after 3 months of Python experience. Is it good to learn Python before jumping into GDscript? If not, how different are the two? Is it okay to first learn Python in preparation?
Thank you! :)
I decided I should watch the official GDscript tutorials that the Godot channel put out, I have not finished it entirely as it is very long, so I was wondering if someone on the forum could answer :)
Is it good to learn Python before jumping into GDscript?
It is not necessary. It is arguably good, but not because of it being Python specifically. Any prior programming experience will transfer well.
If not, how different are the two?
They have similar syntax. Keywords are different.
In general it is easy to translate algorithms from Python to GDScript. However, it might result in a suboptimal GDScript/Godot solution.
A common experience among beginners has been implementing things in GDScript to later discover that Godot already have a built-in way to do it that is both more convenient and more efficient (I'm not saying this is always the case, but that it is very common). Please notice that is not so much learning GDScript, but learning Godot.
Don't expect any advanced Python to work on GDScript. The reason being that GDScript semantics are closer to Java or C#.
I want to mention that in GDScript you are free to specify types or omit them from your code (in which case it behaves as a dynamically typed language). In general I encourage to use types, it allows for static analysis (and starting from Godot 4 it should give you better performance too).
Is it okay to first learn Python in preparation?
You can learn whatever. Learning Python first is OK. It will not hinder your experience with GDScript.
With that said, I want to point out that GDScript is a good entry level programming language. You can jump into GDScript without prior programming knowledge.
Is there any good sources such as books or writing that I should refer to?
While it is off-topic to ask for learning material on this site, it is OK to recommend…
There is a canonical answer: Tutorials and resources.
I decided I should watch the official GDscript tutorials that the Godot channel put out, I have not finished it entirely as it is very long
Do as you wish. People have different preferences for learning.
Some of us rather have a project to motivate us, and learn the things we need to get it done. Other prefer to explore and experiment the options. Others prefer to have tutor that guide them.
It is all valid.
If I were you, I would go with GDScript basics and jump in. But I'm not you.
so I was wondering if someone on the forum could answer :)
This is not a forum. This a Q&A site. Open ended conversations do not work well here.
With that said, I would like to point you to: the official Godot forum. See the Godot's community page.
I would also want to point out that despite GDScript being the intended and preferred way to use Godot, you don't have to. Yes, you might even use Python. And yes people coming from Unity might use C#. See using different programming language in godot game engine?. If you plan to do something like that, I would still encourage to give GDScript a try.
Godot documentation is very clear, well organized and straigthforward.
You definately should take a look at it. If you just casualy read the General and Getting Started section from the navbar you probably gonna learn lots of things. Godot Docs
If somehow you still are doubtfull about GDScript, the docs also have a section under the Scripting link dedicated to it's introduction and other stuff. GDScript Docs
Have fun! :)

Student Seeking Programming Advice [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 2 years ago.
Improve this question
I am a high school student, and I have just finished 4 free youtube courses on python, along with a "beginners guide to python" book, and I am a little lost. I understood the language quite well and enjoyed learning it. My question is: what do I have to learn in order for me to start designing and building things with python. Just to be clear, I am not talking about complicated things such as websites or machine learning applications. I am talking about simple games and apps so that I can form a better understanding of software development through practical experience. I honestly thought this is where the course and book would get me by now. I feel like my understanding of python is great (for a beginner). I understand all of the fundamental terms and definitions of the language, and I can answer questions other students may have about directories, methods, strings and so on without trouble. I just have no idea where to begin designing and building real things that can test my knowledge as a programmer.
I understand that I have a lot to learn. I just have no discernible vision as to how I can become better without practicing what I learn.
I am grateful for any advice you can provide on how I can resolve this issue, as well as any book recommendations or helpful links for learning resources.
Thank you for your time.
There are lots of fun ways! Try some of Swagart's books (Automate the Boring Stuff with Python, etc). By all means try making a basic web application with Flask. Try making a game with Pygame (Al Swagart's pygame book is good for that). Try interfacing a database directly with sqlite3. The possibilities are endless. Don't stick to just raw python, the best way to get experience is to use external modules and apply your knowledge to them. If you need to write Python for a job they will want you to be using something or other to do something or other and the only way to be able to say "Oh yes I can learn this module you're using for webdev/game/anything" is to have experience learning new modules and use cases.

Just being Curious [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 6 years ago.
Improve this question
So I'v been learning how to program for about a month now. I just finished reading 'Invent your own games with python'. Before the book I had never seen a line of code. After reading the book I'm able to read code and understand what's going on. But that's about it. I got the syntax down and can use all the flow statements. I'm still not able to create my own projects and when I try to do a challenge online, I just sit there and stare at it not knowing where to start. Is this normal? Is this one of those things where one day I'm gonna wake up and It's gonna click in head. Any suggestions as too what I can do accelerate my learning?
I think you've reached the bliss point between knowing how to write Python and how to actually program.
Python is the tool, programming is the practice.
I was in your shoes a few months ago (I had finished Data Structures and Algorithms in Python, also a good book). I decided to look online for areas to practice and understand programming problems as well as improve my math skills (math shortcuts come in handy). Nothing really clicks until you've gotten a few projects accomplished.
Designing a game IS HARD and it may not be the best place to start but if that's where you want thing to click I'd highly recommend breaking games down as a programmer might: take a feature of a game, say SimCity's Sim.
What features in OOP terms does this feature have as attributes?
What does the object do?
What external classes/objects affect this object?
What does this object externally impact?
Since you're learning Python, learning how to use the OOP paradigm is crucial and designing projects around it allow you to use Python with greater strength.
It's absolutely normal to look at a problem and have no idea where to start.
That's a lack of experience. Get some.
This is where I start if I want to get a feeler for a new language: https://projecteuler.net/
There's plenty of resources online to test your skills and there's probably an offline community near you.
Yes, this is perfectly normal for any beginner.
What you need to do is just continue doing what you are doing.
The beginning will be difficult learning curve so aim for more beginner/basic level questions (i.e.: beginner level online challenges).
Develop plenty of your own programs for fun and whenever you get stuck ask online.
When other people answer your questions online look for the most elegant solutions (i.e.: quickest execution time, neat coding style, etc...) and try remember their solutions.
The fastest way (in my opinion) to learn code is to build your own programs for fun. Just never give up no matter how hard and frustrated it gets.

Is python a good choice to build a desktop application? [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 7 years ago.
Improve this question
I'm wondering if python is a good choice to develop a desktop application for a small business.
Is it possible to build something using PyQT or even Swing + Jython ? How I can make a executable file at the end?
I've found Python to be an excellent choice for developing a broad scala of applications including desktop applications. I've developed in C++ for many years, and for parts that are really time critical I sometimes use it still, but for most of my code Python helps me get results much faster. There are several ways to get an executable. Py2exe is one of them, Cython another option allowing easy combination with C++ if you need raw speed, interfacing with 3rd party libaries or low level control of devices. It also makes reverse engineering a bit harder, if that's a concern in your project.
By the way, when I started out with Python I was very concerned about performance and (being a quality manager at that time) almost blocked its introducion in our company for its lack of strickt typing. I was wrong about both. Since especially the rich set of built in datastructures as well as many of its standard modules are written in C++ and have been carefully optimized, it isn't so easy to beat on speed and memory efficiency as one might think. And the dynamic typing (only recently introduced in a language like C#) proved a very powerful means to write concise, readable, reliable and compact code.
I don't have shares (since Python is open source anyhow) but from all the languages I've used in the past (Algol, Pascal, Modula II, Assembler, Basic, Fortran, Cobol, C, C++, C#, Java, JavaScript) it's the one I prefer rightnow to earn a living with.
It depends on what you are looking to do. I have done it and it worked but there are other questions that can factor in like who will maintain or update the code, and do they know Python. You can look at cx_freeze for making a windows executable out of a python program as one of many options.

why do people say that RPython is an unpleasant language to program in [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
It is often stated that RPython is an unpleasant language to program in, for example, here, here, here or here.
However, for example here in the original paper about RPython, it says quite the opposite:
The result is a language that is more expressive than C# and Java, but
which does not compromise runtime efficiency. RPython was initially
designed for the specific purpose of implementing PyPy [25] (a Python
interpreter written in Python), but it has grown into a full-fledged
language in its own right.
Currently, RPython can be used in many contexts: to develop
stand-alone programs, such as the Standard Interpreter itself; to
write highly efficient extension modules for CPython, which could only
be written in C in the past; to develop dynamic web applications
without the need to write JavaScript code; to produce efficient
libraries of classes and functions to be used by other .NET and Java
programs. In particular, RPython can be the ideal companion for all
those CPython, IronPython and Jython developers that so far have been
forced to write the parts of their programs that need high performance
in C, C# or Java.
A related question for using RPython as a general purpose language is also here. I was also wondering about using RPython as a replacement for Cython. A related question is here. There is also the RPythonic project.
Why is it that people recommend against using RPython?
from here:https://mail.python.org/pipermail/pypy-dev/2013-June/011503.html
"
When people look at RPython, an obvious feature is that it is
syntactically identical to Python. "RPython must be an easy language,
given that it has got the syntax of Python, which is easy". This is a
common misconception. In fact, pleasing the automatic type inference
process can be difficult. It requires the programmer keeping in his
head the global types of his whole program, and carefully writing code
according to these implicit types. The process is much harder for
newcomers, which don't have any written-down example to learn how to
manipulate the types --- precisely because they are implicit.
"
I have made one file conversion program using RPython toolchain. Simple buffered file input and output. I can't imagine with my skills easier language to make such a fast, reliable, low bugs program.
What works and what doesn't is not well documented but once you find things out it is really nice set of tools to make small, fast and reliable programs.

Categories