What's bigger and more dangerous than Python ?
Anaconda, of course !
This is a ready made, especially grafted solution for the needs of scientific community which relies solely upon the the Python language and the packages which have been built exclusively for the language like Scipy, Sympy, Numpy. In fact it surpasses Sage in it's effort to combine the numerous open-source softwares, here's the list which shows the 270+ packages in Anaconda.
The basic version is free for individual usage so, go right ahead and download it for your platform.
The main difference between Sagemaths and Anaconda is that the former is more heterogeneous in it's usage of softwares which might be built in another language entirely for example a major component of Sagemaths, Magma is built using a LISP derivative and we are free to access and program Magma from within Sage, if we so choose.
Whereas the Anaconda system relies solely upon the systems which have been built upon the Python language, however they too are optimized using various low-level languages and technology namely C language or perhaps a domain oriented language for multi-processing etc.
Why do I insist that you get used to Anaconda when our aim is to use Sagemaths for Mathematics ?
The simple reason being, it's like trying to understand Calculus when we are not even familiar with Trigonometry! Python is the strong foundation and the base upon which the entire Sagemaths structure is erected and it's absolutely wonderful. The thing is there are many Sage-specific functions and functionality which is essentially the building block for taking the Python language to be more Mathematics friendly, in short it adds an immensely huge library of functions to the Python language by default. Now, we can't really understand the workings of the entire Sagemaths system, if we only have a superficial knowledge of the Python language.
We are lucky that Sage is based upon such a wildly popular language for otherwise we would have to learn an entirely commercial, closed source language with it's own peculiarities like Mathematica or MATLAB etc. The fact that Python's inbuilt Standard Library contains, literally, almost all the tools that you would need to get started in any aspect of computing. Be it GUI designing, Database designing or Networking oriented programming, it's all in there already.
This is why Python is said to be shipped with "Batteries Included";P
So, unless we are really comfortable with the Python language, we wouldn't really be free to create our own functions, classes to inspect various aspects of Mathematics. The reason Anaconda is indispensable to us is that, it gets us moving in an IDE as well as the wonderful IPython environment, which stresses the use of Python packages for Scientific Exploration. Plus, if you have explored Ipython a bit, which you really really should, then you would be pleasantly surprised to find that it too has evolved from being an awesome front-end to the Python language to something which is essential language independent, so the new project is called Jupyter which already offers us the ability to use Julia, R and of course Python ( 2 and 3) within itself. Plus, there are many other shells which are in the pipeline-of-coming-wonders like Lua, Haskell, C++ etc.
So, this is something that's only gonna surpass the success of Ubuntu because the Open Source Community learns fast and is ever more enthusiastic. It has mastered the art of adapting to the needs of the times and make the transition as smooth as possible.
Regarding the blog posts, I am trying to tinker with the HTML/CSS/ JavaScript code to make it really awesome. I assure you, give me a couple of months and this thing would be insanely cool;P
I have been exploring the various technologies and resources which seem promising. At the same time, I am becoming ever more fluent using the resources and tools that I already have. The progress is pretty fast, two months folks, two months at best and you will see how amazing it gets.
I am trying out various languages, like Haskell, Lua and Emacs-Lisp trying to ascertain their niche, like it makes a lot of sense to try out new algorithms with a very light weight and utterly simple and beautiful language like Lua, plus Emacs is definitely in, I would like to be able to customise the entire environment to suit my needs, so Elisp is to something that is quite important and would always be here; folks, Emacs isn't going anywhere !
I feel in my bones that I am getting better, though I am quite chaotic in my workflow, I feel it that Programming is becoming more and more of a second nature to me. I might not be an expert at anything but I am getting better for sure, getting better with each passing moment and each question that I solve, each keystroke I put in. It's amazing;P
This blogging thing is growing on me and I think that scientific computing, or more specifically Computer Aided Mathematics is really my thing so I am definitely gonna pursue this as a career.
In Linux I try to stick to bare bone tools which means, me being able to use the control the entire computer and the softwares through the shell itself. This is as real as it gets;P
Whereas in Windows, I focus on Juno, Anaconda, IDLE and of course the online version of Sagemaths, SageMathscloud.
As I promised in the last post, the code for giving a bit of Personality to Numbers is as following. The code is pretty elementary at the moment, but with time and within this context we are gonna leanrn the basics of Python Language. This is only the basic version of the code, made colourful using hilite.me
Anaconda, of course !
This is a ready made, especially grafted solution for the needs of scientific community which relies solely upon the the Python language and the packages which have been built exclusively for the language like Scipy, Sympy, Numpy. In fact it surpasses Sage in it's effort to combine the numerous open-source softwares, here's the list which shows the 270+ packages in Anaconda.
The basic version is free for individual usage so, go right ahead and download it for your platform.
The main difference between Sagemaths and Anaconda is that the former is more heterogeneous in it's usage of softwares which might be built in another language entirely for example a major component of Sagemaths, Magma is built using a LISP derivative and we are free to access and program Magma from within Sage, if we so choose.
Whereas the Anaconda system relies solely upon the systems which have been built upon the Python language, however they too are optimized using various low-level languages and technology namely C language or perhaps a domain oriented language for multi-processing etc.
Why do I insist that you get used to Anaconda when our aim is to use Sagemaths for Mathematics ?
The simple reason being, it's like trying to understand Calculus when we are not even familiar with Trigonometry! Python is the strong foundation and the base upon which the entire Sagemaths structure is erected and it's absolutely wonderful. The thing is there are many Sage-specific functions and functionality which is essentially the building block for taking the Python language to be more Mathematics friendly, in short it adds an immensely huge library of functions to the Python language by default. Now, we can't really understand the workings of the entire Sagemaths system, if we only have a superficial knowledge of the Python language.
We are lucky that Sage is based upon such a wildly popular language for otherwise we would have to learn an entirely commercial, closed source language with it's own peculiarities like Mathematica or MATLAB etc. The fact that Python's inbuilt Standard Library contains, literally, almost all the tools that you would need to get started in any aspect of computing. Be it GUI designing, Database designing or Networking oriented programming, it's all in there already.
This is why Python is said to be shipped with "Batteries Included";P
So, unless we are really comfortable with the Python language, we wouldn't really be free to create our own functions, classes to inspect various aspects of Mathematics. The reason Anaconda is indispensable to us is that, it gets us moving in an IDE as well as the wonderful IPython environment, which stresses the use of Python packages for Scientific Exploration. Plus, if you have explored Ipython a bit, which you really really should, then you would be pleasantly surprised to find that it too has evolved from being an awesome front-end to the Python language to something which is essential language independent, so the new project is called Jupyter which already offers us the ability to use Julia, R and of course Python ( 2 and 3) within itself. Plus, there are many other shells which are in the pipeline-of-coming-wonders like Lua, Haskell, C++ etc.
So, this is something that's only gonna surpass the success of Ubuntu because the Open Source Community learns fast and is ever more enthusiastic. It has mastered the art of adapting to the needs of the times and make the transition as smooth as possible.
Regarding the blog posts, I am trying to tinker with the HTML/CSS/ JavaScript code to make it really awesome. I assure you, give me a couple of months and this thing would be insanely cool;P
I have been exploring the various technologies and resources which seem promising. At the same time, I am becoming ever more fluent using the resources and tools that I already have. The progress is pretty fast, two months folks, two months at best and you will see how amazing it gets.
I am trying out various languages, like Haskell, Lua and Emacs-Lisp trying to ascertain their niche, like it makes a lot of sense to try out new algorithms with a very light weight and utterly simple and beautiful language like Lua, plus Emacs is definitely in, I would like to be able to customise the entire environment to suit my needs, so Elisp is to something that is quite important and would always be here; folks, Emacs isn't going anywhere !
I feel in my bones that I am getting better, though I am quite chaotic in my workflow, I feel it that Programming is becoming more and more of a second nature to me. I might not be an expert at anything but I am getting better for sure, getting better with each passing moment and each question that I solve, each keystroke I put in. It's amazing;P
This blogging thing is growing on me and I think that scientific computing, or more specifically Computer Aided Mathematics is really my thing so I am definitely gonna pursue this as a career.
In Linux I try to stick to bare bone tools which means, me being able to use the control the entire computer and the softwares through the shell itself. This is as real as it gets;P
Whereas in Windows, I focus on Juno, Anaconda, IDLE and of course the online version of Sagemaths, SageMathscloud.
As I promised in the last post, the code for giving a bit of Personality to Numbers is as following. The code is pretty elementary at the moment, but with time and within this context we are gonna leanrn the basics of Python Language. This is only the basic version of the code, made colourful using hilite.me
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # -*- coding: utf-8 -*- """ Created on Sat Jun 13 12:37:31 2015 @author: abhinav """ class numperson: def __init__(self): self.color = None self.name = None def has_color(self): self.color = input("enter the color of the number : ") def has_name(self): self.name = input(" and I namest thou : ") def show_info(self): print("The name of the person is : " , self.name) print("and the Color is : ", self.color) numlist = [1, 2, 3,] for i in range(3): numlist[i] = numperson numperson.has_color(numlist[i]) numperson.has_name(numlist[i]) print("the personality elements of the number are : ") numperson.show_info(numlist[i]) """ To access the particular attribute we simply type in the array like numlist[1] and ask for a particular attribute with the following command numlist[1].color or numlist[1].name and we have it""" print("\n the information about the element is as follows ") print(" \nthe color of the number is ", numlist[1].color) print(" \nthe name of the number is ", numlist[1].name) |
No comments:
Post a Comment