пятница, 17 апреля 2009 г.

Python

Хотя эта тема относится не совсем к Linux, но всёже.

Компьютерная индустрия развивается невероятно быстрыми темпами и у меня складывается такое впечатление, что в ПО на первое место выходит не качество , а скорость разработки. Гонка мощностей сделала нерентабильной оптимизацию программ. Зачем корячиться, если за то время которое понадобится на оптимизацию все пользователи перейдут на более новое железо и проблемы сами собой исчезнут! Другое дело скорость. В наш век интернета от идеи до реализации необходимо тратить минимально короткое время.

Чтобы воплотить эту идею в жизнь приходится менять подходы, как к организации процесса программирования, так и к средствам и языку программирования. Один из таких "сверхбыстрых" по написанию и "не очень" по производительности языков является Python. Тут сразу хочется отметить, что интерпретатор Python'а сам в какой-то мере следует идее "сверхбыстрого" программирования. Новые функции появляются очень быстро и работают медленно, но через некоторое время переписываются и начинают работать быстрее. К чести разработчиков, можно отметить, что основной функционал уже написан и ведутся работы (несколькими независимыми группами разработчиков, в том числе и Google) по "разгону" интерпретатора. Новый функционал затрагивает в основном идущий в комплекте Framework.

Кстати о FrameWork'ах. В описании к Python'у написано буквально следущее "batteries included". Интерпретатор поставляется с обширным фреймворком, который позволяет выполныть огромное количество функций не прибегая к длительной разработке или качанию сторонних пакетов.

Что касается рабочего процесса, то сам стиль Python'а позволяет делать код наглядным и прикладыать минимальные усилия к егодополнительной документации и покрытия тестами.

Ладно, что-то я зарекламировался. Язык набирает популярность, поэтому дифирамбы можно почитать на просторах интернета. Я всё-таки хочу поговорить о нём в немного другом ключе:

Ну хорошо. Есть куча языков, которые позволяют писать код быстрее за счёт того, что код интерпретируется, есть сборщик мусора и прочая лабуда. Но программирование на Python'е вызывает совсем другое ощущение. В нём нет мощи Java или интеграции в MS технологии как у .NET (хотя с помощью батареек он в какой-то степени делает и то, и то). Основная идея которая приходит во время программирования на нём,звучит примерно так: "Язык прототипирования". Своей структурой и лексемами он позволяет писать код не задумываясь о технике написания. То есть писать код и не думать об освобождении или вобще каком-то менеджменте памяти, взаимодействии объектов. Он позволяет быстро набросать основную структуру проекта, не заморачиваясь описанием граничных случаев, так как предоставляет достаточно гибкости для того, чтобы дописать все проверки в будущем. Единственное, чего ему сейчас не хватает - это, наверное, IDE с хорошим блоком рефакторинга, созданного специально для Python'а.

Второе применение языка: калькулятор. Имея на борту довольно мощную математическую библиотеку и возможность написания лямбда функции Python, наверное, сможет потеснить mathlab. Во всяком случае мне его возможностей как калькулятора пока хватает за глаза.

Таким образом python занимает место, как язык быстрого выражения своих идей, этакой салфеткой для программиста. И если идея оказыватся жизненной, то вполне возможно, что код будет переписан на что-то более быстрое. А может создателям получится разогнать интерпретатор, а производителям железа - мощности, и в наличии более быстрых программ отпадёт весь смысл?

Комментариев нет:

Отправить комментарий