Loading…
Transcript

Влияние других языков

Сообщество в интернетах

Python сообщество

Python People

  • http://www.pythonweekly.com/
  • http://stackoverflow.com/questions/tagged/python
  • http://habrahabr.ru/hub/python/
  • etc.

"I will always feel a strong affection to the community around Python. This is interesting for me because I feel a lot less of an attachment to Python itself these days then I did a few years ago."

http://lucumr.pocoo.org/2014/2/13/programming-communities/

Hello world!

Java

Python

Индекс удовлетворенности

Жизненное

print "Hello, world!"

Вопросы?

Итого:

public class HelloWorld

{

public static void main (String[] args)

{

System.out.println("Hello, world!");

}

}

Основные черты

Кроссплатформенность

mailto: telepenin.nikolay@gmail.com

twitter: @_prefer

skype: aka_prefer

PEP's

import this

"You have a problem and decide to use Java.

Now you have a ProblemFactory, ProblemFactoryConfigurator and ProblemFactory.xml"

  • Красивое лучше, чем уродливое
  • Явное лучше, чем неявное
  • Простое лучше, чем сложное
  • Плоское лучше, чем вложенное
  • Читаемость имеет значение
  • Должен существовать один — и, желательно, только один — очевидный способ сделать что-то
  • Хотя он поначалу может быть и не очевиден, если вы не голландец
  • Если реализацию сложно объяснить — идея плоха

KISS - keep it simple, stupid

PEP

  • ABC — отступы для группировки операторов, высокоуровневые структуры данных (map)(Python фактически создавался как попытка исправить ошибки, допущенные при проектировании ABC);
  • Modula-3 — пакеты, модули, использование else совместно с try и except, именованные аргументы функций (на это также повлиял Common Lisp);
  • С, C++ — некоторые синтаксические конструкции;
  • Smalltalk — объектно-ориентированное программирование;
  • Lisp — отдельные черты функционального программирования (lambda, map, reduce, filter и другие);
  • Fortran — срезы массивов, комплексная арифметика;
  • Miranda — списочные выражения;
  • Java — модули logging, unittest, threading (часть возможностей оригинального модуля не реализована), xml.sax стандартной библиотеки, совместное использование finally и except при обработке исключений, использование @ для декораторов;
  • Icon — генераторы.

SI

ФЮ

  • Python легко учить
  • Python легко читать
  • На Python задача часто решается быстрее и проще
  • Python старается решить задачу красиво и при этом не стоит у вас на пути
  • Пишите на Python!
  • строгая динамическая типизация
  • автоматическое управление памятью
  • полная интроспекция
  • механизмы обработки исключений
  • поддержка многопоточных вычислений
  • удобные высокоуровневые структуры данных

http://blogs.msdn.com/b/windowsazure/archive/2012/07/02/python-on-windows-azure-a-match-made-in-the-clouds.aspx

Cервис хостинга сайтов и web-приложений на серверах Google

  • Инструменты, которые вы знаете и любите: Python, Java, PHP, Go.
  • Используется миллионами: например, Snapchat, Rovio, и Khan Academy работает на Google App Engine.
  • Создание и развертывание: не беспокойтесь о администраторах баз данных, серверах, шардинге и балансировки нагрузки.
  • Масштабирование: автоматическое до 7 млрд. запросов в день.

https://developers.google.com/appengine/

Комик-группа из Великобритании, состоявшая из шести человек

Python Enhancement Proposals

Чтение файла

  • 4 млрд просмотров в день
  • 60 часов видео загружается ежеминутно
  • 350+ миллионов устройства работают с YouTube
  • Количество видео выросло в 9 раз, а количество разработчиков при этом лишь в 2 раза
  • 1 миллион строк кода на Python

http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html

Java

Python

Python 4 и Python 5

Colt Python

израильская ракета класса «воздух-воздух»

Python WTF?

И сервер Dropbox и клиент в основном написаны на Python. Настольный клиент использует в качестве GUI WxWidgets и Cocoa. Другие известные библиотеки Python - Twisted, ctypes и pywin32. Dropbox поставляется и зависит от librsync, который написан на C.

шестизарядный револьвер калибра .357 Magnum

Кто использует python?

with open("somefile.txt") as file:

for line in file:

print line

Почему Python?

http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-how-dropbox-did-it-and-how-python-helped-4896698

Основные технические характеристики:

  • Масса БЧ — 11 кг
  • Скорость — 4 М
  • Дальность — 20 км

Гвидо ван Россум

Телепенин Николай

Kazan Python DevDay 2014

http://ru.wikipedia.org/wiki/Colt_Python

Работал в Google, в данный момент работает в Dropbox. Половину времени посвещает развитию языка.

Высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода

Обо мне

Популярные проекты:

Популярные сервисы:

import java.io.*;

class ReadFile {

public static void main(String args[]){

try {

FileInputStream fstream =

new FileInputStream("somefile.txt");

DataInputStream in =

new DataInputStream(fstream);

BufferedReader br = new BufferedReader(

new InputStreamReader(in));

String strLine;

while ((strLine = br.readLine()) != null) {

System.out.println (strLine);

}

in.close();

}catch (Exception e){

System.err.println("Error: " + e.getMessage());

}

}

}

  • опыт в python'e более 4-х лет
  • опыт в разработке ПО более 7 лет
  • по совместительству ведущий архитектор в БАРС Груп

https://launchpad.net/

http://askubuntu.com/questions/319930/is-ubuntu-more-suited-for-python-based-apps

FriendFeed - агрегатор информации из различных социальных сетей, блогов, микроблогов и прочих сервисов, работающий в реальном времени.

FriendFeed использует собственный, не блокирующий веб-сервер, написанный на языке Python — Tornado. Исходный код открыт под свободной лицензией Apache License.

Не каждое оценочное суждение должно служить модификатором поведения

https://wiki.python.org/moin/OrganizationsUsingPython

Веб сервис на Python

$ pip install bottle

Веб сервис на Java

from bottle import route, run

@route("/hello/:msg")

def hello(msg):

return "Python say : " + msg

run(host='localhost', port=8080)

Вам понадобится:

  • Реализация JAX-RS (Jersey, RESTEasy) +зависимости
  • Конфигурация (web.xml)
  • Скрипты для сборки (Ant, Maven, Gradle)
  • Application сервер (Tomcat, Glassfish, JBoss)

Веб сервис на Java

Структура проекта

Веб сервис на Java

Конфигурация

Веб сервис на Java

Конфигурация

Веб сервис на Java

Код