Skip to main content
replaced http://stackoverflow.com/ with https://stackoverflow.com/
Source Link

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLLlevel language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign off with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays ($10^7$ of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of RAM. Loading a 40MB text file takes 3 GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign off with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays ($10^7$ of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of RAM. Loading a 40MB text file takes 3 GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign off with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays ($10^7$ of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of RAM. Loading a 40MB text file takes 3 GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

added 104 characters in body
Source Link

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign ofoff with a classic xkcd:

xkcd comicxkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays (10^7$10^7$ of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of ramRAM. Loading a 40MB txttext file takes 3GB3 GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign of with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays (10^7 of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of ram. Loading a 40MB txt file takes 3GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign off with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays ($10^7$ of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of RAM. Loading a 40MB text file takes 3 GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

added 33 characters in body
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign of with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays (10^7 of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of ram. Loading a 40MB txt file takes 3GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes it less ifthe code I want to publish code along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign of with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays (10^7 of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of ram. Loading a 40MB txt file takes 3GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes it less if I want to publish code along with any article.

Don't get me wrong, MMA is the second language I learned and I like it. But if I knew then what I know now, I'd go with Python.

Leonid has presented a nice overview of some of MMA's weak and strong points. I'll present here some arguments why Python might be worth learning next. These are based on personal experience, since I did not get the point of Python until after I attended this workshop.

Go with Python. You'll be surprised how quickly it's possible to get some things done.

Python is a well designed object oriented general purpose dynamically typed scripting language. Apart from OOP it supports procedural and limited functional programing, so you will be able to practice a different way of writing programs.

Python currently has a lot of momentum in the scientific computing community: (see here, here, here for some nice introductions). The core scientific packages are Numpy, Scipy and matplotlib. But then there is a rich ecosystem for almost anything from HDF5 to antigravity:)

For most stuff Python is fast enough. Critical parts can easily be written in Cython or by hand in any low level language capable of producing a DLL.

Python is open-source and cross-platform.

Regarding MMA integration: I have no personal experience here. But there are options.

I'll sign of with a classic xkcd:

xkcd comic

On dark nights I sometimes regret my thesis code is not written in Python (but in MMA). Why you might ask? I'm doing some numerical stuff on large vector arrays (10^7 of 2D points). Somewhere deep down MMA unpacks them for a short while and eats GB of ram. Loading a 40MB txt file takes 3GB. There is no real pass-by-reference (can be faked with HoldFirst), so I never know when copies are made. It's not open source or widely used, which makes the code I publish along with any article less attractive.

Don't get me wrong, MMA is the second language I learned (with Object Pascal being first) and I like it. But if I knew then what I know now, I'd go with Python.

added 50 characters in body
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106
Loading
added 869 characters in body
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106
Loading
added 869 characters in body
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106
Loading
added 869 characters in body
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106
Loading
added 869 characters in body
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106
Loading
Source Link
Ajasja
  • 13.8k
  • 3
  • 48
  • 106
Loading
Post Made Community Wiki by Ajasja