Интернет-сервисы, специально посвященные социологическим и маркетинговым исследованиям Интернет-аудитории, например «Глас Рунета» VoxRu.Net.
Несмотря на то, что до настоящего времени технологии интернет-голосований широко не применялись при проведении государственных выборов, системы голосований с использованием Интернет разрабатываются в ряде стран, а в некоторых уже имеются их законченные реализации (приложение 5).
В мире идут споры о возможности практического проведения Интернет-выборов и их безопасности для тайности волеизъявления граждан и достоверности, полученных в результате таких выборов результатов.
Несмотря на это, ряд стран, такие как Великобритания, Соединённые Штаты Америки, Эстония, уже применяли технологию Интернет-голосования на выборах различных уровней (от местных до парламентских). Наиболее крупным политическим событием, на которых применялась возможность Интернет-голосования, стали выборы Парламента Эстонии в марте 2007 года. Возможностью проголосовать с помощью Интернет воспользовались 30275 человек, то есть чуть более 3 % всех зарегистрированных избирателей.
1.3 Языковые средства разработки систем голосования
Электронное голосование можно осуществить с помощью языков программирования, которые имеют возможность работать с базами данных.
Примером таких языков могут послужить PHP, PERL , JavaScript, python, С++, BASIC, если его интпретаор установлен на сервере. Также осуществить голосование на сайте можно с помощью технологии AJAX основанной на JavaScript .
PHP - скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных. PHP поддерживается подавляющим большинством хостинг-провайдеров.
К настоящему моменту PHP стал одним из самых популярных скриптовых языков, используемых для разработки простых и средних по уровню сложности интернет-голосований. Поддержка данного языка входит в состав услуг большинства виртуальных хостингов в России и других странах. Установка PHP под Windows является несложной и легко решаемой задачей. Подобная доступность делает этот язык еще более привлекательным для разработки сайтов и вынуждает хостинговые компании устанавливать и поддерживать PHP. Вся данная ситуация только играет на руку web-разработчикам. Меняя по каким-то причинам хостинг, практически исключаются проблемы с нахождением нового, что не всегда будет легко в случае использования других языков, отличных от PHP.
В области программирования для Сети PHP — один из популярнейших скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности, кросс-платформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:
· Автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
· Файловые функции успешно обрабатывают как локальные, так и удалённые файлы;
· Автоматическая отправка HTTP-заголовков;
· Работа с cookies и сессиями;
· Обработка файлов, загружаемых на сервер;
· Работа с HTTP заголовками и HTTP авторизацией;
· Работа с XForms;
· Работа с удалёнными файлами и сокетами
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу Tiobe, базирующемся на данных поисковых систем, в декабре 2009 года PHP находится на 3 месте среди языков программирования (уступая Java и C), поднявшись за год на две позиции. К крупнейшим сайтам, использующим PHP, относятся Facebook, В контакте, Wikipedia, YouTube. [10]
Синтаксис PHP подобен синтаксису языка С. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl. Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.
Perl - это сокращенное название языка программирования Practical Extraction and Report Language - практический язык извлечений и отчетов. Язык Perl родился в недрах операционной системы Unix как реакция одного талантливого программиста на ограниченную возможность стандартных средств системного администрирования в этой операционной среде. [1]
Perl - это интерпретируемый язык, оптимизированный для просмотра содержимого текстовых файлов, выделения из них информации и генерирования отчетов на основе этой информации, а также просто хороший язык для выполнения многих задач системного администрирования UNIX. Он обладает большим набором преимуществ как язык сценариев общего назначения, которые проявляются через его характерные черты и возможности.
Начнем с того, что у языка Perl имеет место характерная особенность от других языков, используемых для написания Web-приложений. Обработка команд в нем происходит как одно целое, независимо от их последовательности. Поэтому, дать какую-либо точную характеристику или формулу для синтаксиса языка Perl нельзя. Он имеет свободный формат, как например в языке С++ (при программировании на сервере почти не используется из-за уязвимости в плане безопасности) и по своей "архитектуре" очень похож на язык С++.
По своей структуре синтаксис данного языка состоит из команд, которые можно условно разделить на декларации и предложения. Все команды, за исключением завершающей в блоке, разделяются от других точкой с запятой. Под блоком здесь следует понимать логически завершенные операции внутри целой программы. Как правило, в написанных программах их можно узнать по фигурным скобкам, в которые они заключены.
Perl не имеет конкретных и точных правил, распространяющих на все эго элементы. Все сделано для удобства программиста.
Первым в цепочке достоинств языка Perl – интерпретируемость. Интерпретатор Perl отличается от традиционных интерпретаторов тем, что программа транслируется в промежуточный байт-код, и только после этого выполняется. В традиционных интерпретаторах каждый вводимый оператор интерпретируется и сразу же выполняется, что может приводить к синтаксическим ошибкам во время выполнения. Perl-программа свободна от этого "недостатка", так как все синтаксические ошибки обнаруживаются во время трансляции в байт-код.
Вторым преимуществом использования Perl для решения соответствующих задач (мы имеем в виду сетевые возможности) является его доступность для большинства серверных платформ:
· практически все варианты UNIX;
· MS-DOS;
· Windows NT;
· Windows 95/98;
· OS/2;
· Macintosh.
Третьим преимуществом языка Perl можно назвать его практическую направленность, т. е. он создавался из практических соображений решения задач администрирования и разработки приложений для UNIX, а это означает, что он обладает следующими важными свойствами:
· полнотой;
· простотой использования;
· эффективностью.
Под полнотой Perl понимается его способность решать все возникающие в системе UNIX в связи с ее администрированием задачи.
Четвертое преимущество использования Perl связана с его дополнительными возможностями, позволяющими выполнять не только традиционные задачи администрирования UNIX и обработки текстовых файлов.
И в завершение перечисления достоинств Perl обратим внимание на пятое преимущество использования: так как изначально этот язык являлся свободно распространяемым, то вся наработанная документация также доступна совершенно бесплатно, а так как Perl, как язык сценариев очень популярен, то в Internet находится море документации по его применению для решения разнообразных задач. [5]
Наиболее широко Perl используется для разработки инструментов системного администрирования, однако в последнее время он получил огромную популярность в области разработки Internet-приложений: CGI-сценарии, системы автоматической обработки электронной почты и поддержки узлов Web. [8]
Python (па́йсон, па́йтон, пито́н) — высокоуровневый язык программирования общего назначения с акцентом на производительность разработчика и читаемость кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Питоне организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты). [8]
Python поддерживает динамическую типизацию, то есть тип переменной определяется только во время исполнения. Поэтому вместо «присваивания значения переменной» лучше говорить о «связывании значения с некоторым именем». Все значения в Питоне являются объектами, в том числе функции, методы, модули, классы.
Язык обладает чётким и последовательным синтаксисом, продуманной модульностью и масштабируемостью, благодаря чему исходный код написанных на Питоне программ легко читаем.
Python — стабильный и распространённый язык. Он используется во многих проектах и в различных качествах: как основной язык программирования или для создания расширений и интеграции приложений. На Python реализовано большое количество проектов, также он активно используется для создания прототипов будущих программ.
Он сочетает прозрачный синтаксис с мощной (но необязательной) объектно-ориентированной семантикой. Python доступен почти на всех существующих ныне платформах и обладает очень высокой переносимостью между платформами.
Развитие языка происходит согласно чётко регламентированному процессу создания, обсуждения, отбора и реализации документов PEP (Python Enhancement Proposal) — предложений по развитию Python. [3]