Date post: | 12-Feb-2017 |
Category: |
Software |
Upload: | eran-shlomo |
View: | 158 times |
Download: | 0 times |
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
IntroThe good The bad The uglySummary
THE GOOD
A MAN WITH NO NAME
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
THE BAD ANGEL
EYES
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
THE UGLY
Tuco Benedicto Pacifico Juan Maria Ramirez, AKA “THE RAT”
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/protecte
d,
Modules path are dynamic,
sys.path.append is too popular
SUMMARY
Watch the movie if you haven't
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 PythonI 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!