Основи Python и Django. / Урок 1. Перші кроки Python. / Історія мови. Переваги та недоліки.

Історія мови. Переваги та недоліки.

Python — високорівнева мова програмування загального призначення, орієнтована на підвищення продуктивності розробника та читання кодарограм з умовою.

Історія мови програмування Python розпочалася наприкінці 1980-х. Гвідо ван Россум задумав Python у 1980-х роках, а розпочав його створення у грудні 1989 року в центрі математики та інформатики в Нідерландах.

Мова Python була задумана як нащадок мови програмування ABC, здатний до обробки винятків та взаємодії з операційною системою Амеба.

Мета проекту Amoeba — створити систему розподілених обчислень, яка б надавала користувачеві мережу комп’ютерів як одну робочу станцію.

Мова Python була задумана як нащадок мови програмування ABC, здатний до обробки винятків та взаємодії з операційною системою Амеба.

Мета проекту Amoeba — створити систему розподілених обчислень, яка б надавала користувачеві мережу комп’ютерів як одну робочу станцію.

Гвідо Ван Россум, працюючи над розробкою мови ABC у Голландському інституті CWI, зрозумів, що хотів би створити щось нове.

Програма мовою ABC, що повертає список слів у документі:

PUT {} IN collection
FOR line IN document:
  FOR word IN split line:
    IF word not.in collection:
      INSERT word IN collection
RETURN collection

Перший робочий прототип Python був створений на домашньому Макінтоші Гвідо за кілька вихідних.

Щодо розпоширення, то робилося це за допомогою Інтернету.

Мова отримала назву «Python» не на честь виду змій, як помилково вважають багато розробників.

За часів розробки «Пітона» Гвідо любив дивитися комедійне шоу «Повітряний цирк Монті Пайтона», тому й назвав свій проект на честь Монті Пайтона.

Так як Пітон мав відмінний потенціал і вільно поширювався через Інтернет, у нього з’явилося ядро ​​послідовників - люди, які були зацікавлені у розвитку Python як програмування.

На початку свого шляху, ця мова мала вигляд невеликого інтерпретатора з малою кількістю функцій та повною відсутністю ОВП, що всіх не влаштовувало та мотивувало на подальший розвиток мови.

Вже 1991 року почали з’являтися перші засоби ОВП розробки.

Далі Гвідо вирішив шукати спонсора, який дасть змогу працювати лише над розвитком мови.

Так як на той час в інтернеті вже існувала чимала спільнота користувачів, фірма BeOpen вирішила взяти участь у просуванні Python.

Через деякий час у компанії BeOpen почалися проблеми та своє фінансування йому запропонувала компанія Digital Creations.

У цій компанії вся команда розробників Пітону отримала великі можливості, що дало плоди.

У тому ж році було випущено версію 2.1. Тепер у Пітоні з’явилися нові об’єкти з мов closures та ієрархія: функції можна було вкладати одна в одну, зберігаючи при цьому доступ до змінних навколишніх функцій.

Це сильно змінить мову, а головне значно покращить її підходи до способу програмування.

На даний момент існує версія 3.5.1, що демонструє його розвиток, адже щороку розробники роблять величезну роботу.

Все це перетворило простий інтерпретатор на дуже популярну мову програмування, яка використовується як перша в навчанні мільйонів студентів по всьому світу.

Основні етапи розвитку.

Python 1.0 з’явився у січні 1994 року.

Основними новими можливостями, включеними до цього релізу, були засоби функціонального програмування: лямбда-обчислення, map, filter та згортка списку.

Ван Россум стверджував, що “Python” придбав lambda, reduce(), filter() і map() завдяки любителю Lisp, якому їх не вистачало, і він надав патчі, що реалізують ці функції”.

Lambda

def identity(x):
    return x+1

lambda x: x+1

Map map(fun, iter)

def addition(n): 
    return n + n

# We double all numbers using map() 
numbers = (1, 2, 3, 4) 
result = map(addition, numbers)

Filter filter(function, sequence)

def fun(variable): 
    letters = ['a', 'e', 'i', 'o', 'u'] 
    if (variable in letters): 
        return True
    else: 
        return False


# sequence 
sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r']

Reduce reduce(function, iterable[, initializer])

func – Функція, яку потрібно застосувати до елементів послідовності.

Повинна приймати два аргументи, де перший аргумент - акумульоване раніше значення, а другий - наступний елемент послідовності.

def reducer_func(el_prev, el):
    # el_prev - попередній елемент
    # el - поточний елемент
    return el_prev + el
from functools import reduce #python 3
print(reduce(reducer_func, [1, 2, 3]))

У версії Python 2.0 з’явилося спискове включення – функція, запозичена з функціональних мов програмування SETL та Haskell.

Парні числа від 2 до 9998 включно

[n for n in range(1, 10000) if n % 2 == 0]

Python 2.2 Python став повністю об’єктно-орієнтованою мовою. Тоді ж було додано генератори.

def my_gen():
    n = 1
    print('This is printed first')
    # Generator function contains yield statements
    yield n

    n += 1
    print('This is printed second')
    yield n

    n += 1
    print('This is printed at last')
    yield n

for item in my_gen(): print(item)

У листопаді 2014 року було оголошено, що Python 2.7 буде підтримуватися до 2020 року, і підтверджено, що релізу 2.8 не буде, оскільки передбачається, що користувачі повинні переходити на версію 3.4+ за першої ж можливості.

Python 3.0 розроблявся з тією самою філософією, що й попередні версії. Однак, оскільки в Python зібралися нові і, що стали надмірними, старі способи вирішення тих самих завдань,

в Python 3.0 був зроблений упор на видаленні конструкцій і модулів, що дублюються, дотримуючись принципу: «має існувати один і, бажано, тільки один очевидний спосіб зробити це».

Проте Python залишався «мультипарадигменною» мовою. Програміст все ще міг вибирати між об’єктно-орієнтованим, структурним, функціональним програмуванням та іншими парадигмами.

Переваги Python.

Низький поріг входження.

Логічний, лаконічний та зрозумілий.

Кросплатформовий.

Широке застосування. Використовується для розробки веб-застосунків, ігор, зручний для автоматизації, математичних обчислень, машинного навчання.

Існує реалізація під назвою Micro Python, оптимізована для запуску мікроконтролерів (можна писати інструкції, логіку взаємодії пристроїв, організовувати зв’язок, реалізовувати розумний будинок).

Сильне ком’юніті.

Потужна підтримка компаній-гігантів ІТ-індустрії. Такі компанії як Google, Facebook, Dropbox, Spotify, Quora, Netflix, на певних етапах розробки використовували саме Python.

Висока затребуваність ринку праці.

У світі Python багато якісних бібліотек, тому не потрібно винаходити велосипед, якщо треба терміново вирішити якесь комерційне завдання.

Python відрізняється суворою вимогою до написання коду (вимагає відступів), що є перевагою, т.к. мова сприяє писати код організовано та красиво.

Недоліки

import pdb; pdb.set_trace()

x = ‘2’ y = 3 z = x+y