Eran Shlomo eran.shlomo@intel.com ©
About me
Intel Perceptual computing.
Compute, cloud and embedded expert.
Started with Python around 7 years ago with analytics tools, used it for bunch of
stuff since then.
Focus on Data science and Machine learning in recent years
Disclaimer: The following are my views , please learn further on anything you
find interesting and feel free to send me a note on matters you disagree 
Agenda
Intro
The good
The bad
The ugly
Summary
Very newbie friendly, Great Eco-system
A LOT of
material
online, for
free
Syntax is
very easy to
read and
learn
Free dev
environment
and tools
(as starter)
A lot of good quality libraries and tools
Internet: Web
servers, Web
client, Scrappers,
SDKs for all major
services
Infrastructure &
Tooling: cross
platform, DevOps,
Testing, Cloud
management, IT,
consoles,…
Good selection of
GUI capabilities ,
cross platform
and cross
programming
langs (Xpython)
Machine learning leadership
Leading for ML
development (with
R and Matlab),
Probably Best for
production
Most ML libraries
are python
friendly
Xaas providers
are embracing
python as well
Mobile and browser support
No browser
support (JS
monopoly)
Weak support
for mobile
Performance
Execution is
slow
compared to
compiled code
Multi-threading
is not well
defined, hard
to implement
GIL
Versioning
Python2 or
Python3 ?
Packaging,
Virtualenv
VS
containers
PEP8 and
the Tabs-vs-
Spaces holy
war
Loose definitions
Dynamic typing,
runtime errors
Class defs, Self,
parent
constructor,
private/protected,
Modules path are
dynamic,
sys.path.append
is too popular
Python is great, yet with great power …
• Python mindset is putting a lot of the rules on community and soft
conformation (We are all grownups …).
• Use IDE, It makes a lot of the downsides smaller (Started with pyscriper, than
pydev, today pycharm)
• Try to stick to PEP 8 as your coding style, pylint your code will help you get
use to it.
PEP 20 -- The Zen of Python
I use “sunscreen” as life mantra and PEP20 as programming mantra, both are endless journey.
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
eran.shlomo@intel.com

Python - The Good, The Bad and The ugly

  • 1.
  • 2.
    About me Intel Perceptualcomputing. Compute, cloud and embedded expert. Started with Python around 7 years ago with analytics tools, used it for bunch of stuff since then. Focus on Data science and Machine learning in recent years Disclaimer: The following are my views , please learn further on anything you find interesting and feel free to send me a note on matters you disagree 
  • 3.
  • 5.
    Very newbie friendly,Great Eco-system A LOT of material online, for free Syntax is very easy to read and learn Free dev environment and tools (as starter)
  • 6.
    A lot ofgood quality libraries and tools Internet: Web servers, Web client, Scrappers, SDKs for all major services Infrastructure & Tooling: cross platform, DevOps, Testing, Cloud management, IT, consoles,… Good selection of GUI capabilities , cross platform and cross programming langs (Xpython)
  • 7.
    Machine learning leadership Leadingfor ML development (with R and Matlab), Probably Best for production Most ML libraries are python friendly Xaas providers are embracing python as well
  • 9.
    Mobile and browsersupport No browser support (JS monopoly) Weak support for mobile
  • 10.
    Performance Execution is slow compared to compiledcode Multi-threading is not well defined, hard to implement GIL
  • 12.
  • 13.
    Loose definitions Dynamic typing, runtimeerrors Class defs, Self, parent constructor, private/protected, Modules path are dynamic, sys.path.append is too popular
  • 15.
    Python is great,yet with great power … • Python mindset is putting a lot of the rules on community and soft conformation (We are all grownups …). • Use IDE, It makes a lot of the downsides smaller (Started with pyscriper, than pydev, today pycharm) • Try to stick to PEP 8 as your coding style, pylint your code will help you get use to it.
  • 16.
    PEP 20 --The Zen of Python I use “sunscreen” as life mantra and PEP20 as programming mantra, both are endless journey. Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!
  • 17.

Editor's Notes

  • #4 Smart Home Industry 4.0 Retail Autonomous cars Robotics Medical FinTech Cognitive computing 5G Wearables