На каком языке программирования написан. На каких языках программирования пишут в Яндексе. Использование сразу нескольких языков для разработки ПО

«С какого языка программирования начать?» — именно такой вопрос часто задают люди, решившие попробовать научиться программировать. Еще лет пять назад можно было посоветовать учиться программировать на Бейсике, но на данный момент это полный идиотизм, так как Бейсик — это уже древнее ископаемое. Да, сейчас многие могут посоветовать учиться программировать на Visual Basic. Упрощенная версия этого языка – VBA (Visual Basic for Application) встроена во все офисные приложения Майкрософт. Тем кто пишет макросы для офисных приложений Майкрософт без VBA не обойтись. Тем не менее, не могу посоветовать ни Бейсик, ни Visual Basic в качестве языка для изучения программирования.
Я предлагаю рассмотреть два случая:

1. У вас все замечательно с математикой и физикой, вы без труда запоминаете довольно сложные формулы, вас не пугают различные непонятные символы.
В этом случае, стоит начать изучение программирования с языка Си. Дело в том, что Си очень мощный язык, на основе которого создано много других еще более мощных языков, таких как С++, Java, С#, PHP и других. К слову сказать, на этом языке написана операционная система Windows и практически все компьютерные игры, в которые вы играете.

Если вы остановите свой выбор на Си, а точнее все же на С++, то информации по этому языку более чем достаточно в Интернете. Тем не менее, советую купить хороший справочник по С++. Настоятельно рекомендую купить справочник Герберта Шилдта.

Справочник по С++

Полный справочник по C++. Книга является бестселлером и издается уже в четвертый раз. 4-е издание. В четвертом издании этой книги полностью описаны и проиллюстрированы все ключевые слова, функции, классы и свойства языка С++, соответствующие стандарту ANSI/ISO. Информацию, изложенную в книге, можно использовать во всех современных средах программирования. Освещены все аспекты языка С++, включая его основу — язык С. Справочник состоит из пяти частей: 1) подмножество С; 2) язык С++; 3) библиотека стандартных функций; 4) библиотека стандартных классов; 5) приложения на языке С++. Книга предназначена для широкого круга программистов.
Заказать книгу>>

2. С математикой у вас проблемы, формулы и непонятные значки вы не перевариваете, но научиться программировать все же хотите.
Ну чтож, как не крути, но лучше попробовать Паскаль. Да, это уже тоже ископаемое, но как бы то ни было, язык программирования Паскаль задумывался изначально как язык для обучения программированию.
Для самостоятельного изучения программированию на Паскале, можно прикупить книжку. Могу порекомендовать следующую:

Самоучитель Pascal

Программирование на Pascal.
Автор Сэм Аболрус. Оригинальное название книги в переводе с английского – «Изучаем Паскаль за три дня». Действительно, освоить азы программирования на Паскале, при помощи это книги можно за пару дней. Автор работает программистом в корпорации Майкрософт.
Заказать книгу>>

В любом случае, если вы хотите научиться программировать, вам надо постоянно писать программы, т.к. только читая умные книжки, программировать научиться невозможно. Удачи всем начинающим программистам.


Яндекс провел опрос своих разработчиков, чтобы выяснить на каких языках программирования они пишут. Об этом сообщается в блоге Яндекса, где говорится следующее:

«Мы спрашивали у наших разработчиков, на чём они пишут, чтобы выяснить - какие языки программирования в Яндексе самые популярные. В опросе приняли участие больше половины разработчиков компании, расклад получился такой:

Многие разработчики используют в работе несколько языков, поэтому мы просили их выбрать один - тот, на котором они пишут больше всего. В лидерах оказались пять языков: C++, JavaScript, Java, Python и Perl. Все эти языки разные, и каждый лучше решает свою задачу. Поэтому они по-разному используются в Яндексе.

C++ - классический язык для больших и сложных систем, где критически важна производительность. На нём обычно пишутся самые важные, базовые компоненты приложений. Например, на C++ написано ядро поиска Яндекса, Браузер и Карты.

На JavaScript в основном пишут интерактивные элементы сайтов, такие как анимация или браузерные игры. Этот язык очень широко используется в браузерах для написания интерфейсов - того, с чем напрямую взаимодействуют пользователи. На JavaScript написаны веб-интерфейсы всех сервисов Яндекса.

Java - это универсальный язык, на котором можно написать любое приложение, будь то игра Flappy Bird или веб-сервер, обрабатывающий миллионы запросов в минуту. Несмотря на название имеет мало общего с JavaScript. Разработка на нём пойдёт быстрее, чем на C++, однако программа может получиться чуть медленнее. Особенности Java позволяют создавать программы, которые работают практически на любом устройстве - от телефона до микроволновки. На Java у нас написаны, например, Маркет и Музыка.

Python - это дружелюбный к программисту язык с простым синтаксисом. С него хорошо начинать изучение программирования. У нас Python широко используется в системном администрировании, но подходит для решения почти любых задач, кроме обработки больших объёмов данных. На Python многое делать проще и быстрее, чем на C++, но программа будет не такой производительной. Это разумный выбор, когда производительность не очень важна или задачу нужно сделать быстро. На Python написана серверная часть Диска, а ещё он используется в Директе, внутренних сервисах и многих других проектах.

Perl был создан для обработки текстов - например, для извлечения фактов из текста. Талисман языка - верблюд, лишённый изящества, но выносливый и эффективный, - точно отражает его особенности. Это лаконичный, но непростой язык, который, однако, хорошо решает свою задачу. В Яндексе его используют, например, для анализа данных в баннерной системе и в разработке серверной части некоторых сервисов - например, Директа.

С точки зрения задачи выбор языка - это поиск равновесия между эффективностью программы, квалификацией программиста и временем, потраченным на работу. Конечно, в реальности всё немного сложнее, поэтому иногда и случаются истории вроде той, с которой мы начали. «Шёл на вакансию C++, взяли на Perl, пишу на Python, а люблю Scala», - такое тоже бывает.

С точки зрения разработчика, выбор языка - это вопрос предпочтений. Кому-то действительно нравится сам язык, кому-то - задачи, которые он решает. Например, одни предпочитают фундаментальные задачи и пишут базу поиска на C++, а другие любят делать то, что видно пользователям, и пишут интерфейсы на JavaScript. Третьи пишут на каком-то языке просто потому, что знают его досконально. А некоторые, наоборот, готовы пробовать новое и участвуют в разных проектах.»

Процесс создания искусственного интеллекта , с первого взгляда кажется довольно таки сложным занятием. Наблюдая за этими красивыми примерами ИИ , можно понять, что создавать интересные программы с ИИ можно. В зависимости от цели, нужны разные уровни знаний. Некоторые проекты требуют глубоких знаний ИИ, другие проекты требуют лишь знания языка программирования, но главный вопрос, которые стоит перед программистом. Какой язык выбрать для программирования искусственного интеллекта? Вот список языков для ИИ, которые могут быть полезными.

LISP


Первый компьютерный язык, применяемый для создания искусственного интеллекта - ЛИСП. Этот язык является довольно таки гибким и расширяемым. Такие особенности, как быстрое прототипирование и макросы очень полезны в создании ИИ. LISP - это язык, который превращает сложные задачи в простые. Мощная система объектно-ориентированности делает LISP одним из самых популярных языков программирования для искусственного интеллекта.

Java

Основные преимущества этого многофункционального языка являются: прозрачность, переносимость и удобство сопровождения. Еще одним преимуществом языка Java является универсальность. Если вы новичок, то вас обрадует тот факт, что существуют сотни видеоуроков в Интернете, что сделает ваше обучение легче и эффективнее.

Основными особенностями java являются: легкая отладка, хорошее взаимодействие с пользователем, простота работы с большими проектами. Проекты, созданные с помощью языка Java имеют привлекательный и простой интерфейс.

Prolog

Это интерактивный символический язык программирования популярен для проектов, которые требуют логики. Имея мощную и гибкую основу, она широко применяется для non-численного программирования, доказательства теорем, обработки естественного языка, создания экспертных систем и искусственного интеллекта в целом.

Пролог - это декларативный язык с формальной логикой. Разработчики искусственного интеллекта ценят его за высокий уровень абстракции, встроенный механизм поиска, недетерминизм и т.д.

Python

Python - широко используется программистами из-за его чистой грамматики и синтаксиса, приятного дизайна. Различные структуры данных, куча Фреймворков тестирования, соотношение высокого уровня и низкого уровня программирования, которые делают Питон одним из самых популярных языков программирования для искусственного интеллекта.

История развития ИИ

Для того, чтобы увидеть связь между ИИ и языком программирования, давайте рассмотрим наиболее важные события в истории ИИ. Все началось в 1939 году, когда робот Электро был представлен на Всемирной выставки. Следующий робот был построен в 1951 году, Эдмундом Беркли.

Робот Робби был построен в 1956 году. К сожалению, нет информации о том, как он был разработан. В 1958 году, был изобретен язык программирования ЛИСП. Хотя этот язык был разработан 60 лет назад, он до сих пор остается основным языком для многих программ искусственного интеллекта.

В 1961 году, был построен UNIMATE. Это первый промышленный робот, который выпускается серийно. Этот робот был использован в «Дженерал Моторс» для работы на производственной линии. Для изготовления UNIMATE ученые использовали Валь, переменная ассемблера. Этот язык состоит из простых фраз, команд монитора, и инструкций, которые не требуют пояснений.

Система искусственного интеллекта Dendral, была построена в 1965 году. Она помогала легко определять молекулярную структуру органических соединений. Эта система была написана на Лиспе.

В 1966 году, Weizenbaum создал Элизу, первого виртуального собеседника. Одна из самых знаменитых моделей назывался Доктор, он отвечал на вопросы в стиле психотерапевта. Этот бот был реализован при сопоставлении образцов техники. Первая версия Элизы была написана на SLIP, список обработки языка был разработан Weizenbaum. Позже одна из его версий была переписана на Лиспе.

Первый мобильный робот, запрограммированный на Лиспе был Шеки. С помощью решения задач программы прокладок и датчиков, шейки двигался, включал и выключал свет, поднимался вверх и вниз, открывал двери, закрывал двери, толкал предметы, и двигал вещи. Перемещался Шеки со скоростью 5 км в час.

В ближайшие 15 лет мир увидел множество удивительных изобретений: Сторожевого робота Деннинг, ЛМИ Лямбда, Omnibot 2000, MQ-1 Predator беспилотный, Ферби, АЙБО робот собака, и Хонда АСИМО.

В 2003 году iRobot изобрел робот-пылесос Roomba. Разработанный на Лиспе, это автономный пылесос моет полы, используя определенные алгоритмы. Он обнаруживает препятствия и обходит их.


А какой язык программирования используете вы, для разработки программ с ИИ? Напишите о ваших работах в комментариях или в нашей группе вконтакте.

Из письма: "Здравствуйте! Никак не могу решиться, какой язык мне лучше начать серьёзно учить (немного знаю pascal (Delphi) и C), в основном хотелось бы писать программы под линукс, но и под другие системы тоже. Так как Си уже отмирает, то не знаю что выбрать: С++ или Java. Помогите, пожалуйста, с выбором, может вообще учить что-нибудь другое, неважно что, сложнее или легче, мне важнее что лучше и нужнее… "

Ответ 1: Я бы не сказал, что Си умирает. Для того чтобы писать на C++ и C#, нужно знать чистый Си. Ведь язык-то тот же, только добавилось объектно-ориентированное программирование. Зная Си, вы без труда освоите и Java, и C++, и C#. Ведь они все по своей сути базируются на си. Изучать новые языки намного легче, если вы уже знаете какой-то (в вашем случае Паскаль и Си). Сейчас входит в моду язык C# и J#. Советую вам установить на компьютер Microsoft Visual Studio и Borland JBuilder. И начать изучать эти языки. Так как это переносимые языки, то у них большое будущее. В частности Java используется очень широко для мобильных ОС.

Ответ 2: На самом деле и с C++ и с Java — работу найдешь легко, если будешь разбираться на должном уровне. Если хочешь «кодить» под Linux – лучше, конечно, С++, просто в исходниках сможешь разбираться, да и «кодить» тоже, разумеется. При этом, после С++ пересесть на Java проблем, думаю, не составит, если жизнь заставит, языки очень похожие! На мой взгляд с хорошим знанием С++ можно будет перейти на что угодно и разобраться с любой технологией.

Ответ 3: Если под Юникс системы, то С однозначно. Под него можно на всех (почти) языках программировать, но "родной" для него все-таки лучше. А вообще это только первое время для тебя будет большое различие между Си и Делфи — когда поймешь, как это работает в одном языке, то поймешь это и в другом.

Ответ 4: Я думаю, что лучше тебе остановить выбор на СИ++… И под Linux много что можно написать, и постепенно изучать Visual для качественного программирования под Windows.

Ответ 5: Важен не язык — важен продукт. То есть конечному пользователю Вашей программы совершенно все равно на чем она написана!

Я все же советую изучать C++, а именно Microsoft Visual C++, причем обязательно с использованием MFC, так как: 1. Классы очень экономят время; 2. Люди получают за это деньги, следовательно, с работой проблем не будет. 3. Как можно увидеть из названия — первое слово везде Microsoft, а это значит, что это актуально.

Я тоже долго метался по оболочкам и языкам — бэйсик, паскаль, с, делфи… Но в конечном итоге остановился на Вижуал С++.

И еще: я не думаю, что Делфи и Вижуал С++ схожи, у них есть свои особенности, взять хотя бы то, что они построены на разных языках, по разному задаются объекты, да и компоненты разные. То есть, выбрав какую либо среду, скорее всего, сможешь пользоваться второй, только ограничено. Теоретически можно две среды выучить, но практически ни одну из них не будешь знать в совершенстве – просто времени не хватит. В общем, от Вашего выбора зависит, в какую ветку портала Вы попадете. Каждый кулик хвалит свое болото! А по сути это все не важно.

В этой теме я вам раскажу о языках программирования
Зачем они нужны и где они используются


Язык программирования:
Формальная знаковая система, предназначенная для записи компьютерных программ.
Язык программирования определяет набор правил:
- Лексических.
- Синтаксических.
- Семантических.
Они задают внешний вид программы и действия, которые выполнит компьютер под ее управлением.

SpoilerTarget">Функция

Язык программирования предназначен для написания компьютерных программ,
которые применяются для передачи компьютеру инструкций по выполнению того или иного
вычислительного процесса и организации управления отдельными устройствами.

SpoilerTarget">Задача

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

SpoilerTarget">Исполнение

Язык программирования может использовать специальные конструкции для определения
и манипулирования структурами данных и управления процессом вычислений.

Какие языки программирования бывают:
BASIC и Pascal:

BASIC всегда считался самым простым языком программирования.
Pascal самым подходящим языком для обучения программированию.
Но теперь это не так. Да, BASIC прост. Но он создавался во времена,
когда человечество не имело никакого опыта создания компьютерных систем,
и основан на устаревших и не оправдавших себя принципах.
Собственно, никакой фундаментальной целостной идеи в основе BASIC не лежит.
Сегодня есть простые и при этом более наглядные и идейно замкнутые языки программирования, нежели BASIC.
Pascal удобен в учебных целях, ведь именно для них он и создавался.
Люди быстро учатся решать с его помощью алгоритмические задачки.
Но так получается, что изучать Pascal полезно только для того, чтобы писать программы на Pascal.
А если нужно создать настоящий программный продукт, Pascal оказывается неудобен.
И людям, знающим только Pascal, приходится переучиваться, что часто сложнее,
нежели изучить правильные языки и технологии с нуля.
Какие есть альтернативы:
Альтернатив много. Ныне есть целый зоопарк (экосистема) языков программирования,
которые постоянно эволюционируют, расщепляются и сливаются.
Это языки Форт, Ruby и Python.
Перечислим ключевые факторы, управляющие отбором:
Предоставление языком высокоуровневых средств контроля за целостностью и безошибочностью кодa на первом этапе сборки проектов. Это относится в первую очередь к языкам Java, Haskell, и Python. Языки стараются делать такими, чтобы программист просто не мог допускать ошибок. А если ошибки все-таки делаются, то на этапе компиляции (трансляции) они должны находиться. В частности, опечатка в одном символе не должна приводить к тому, что программа компилится и запускается (а такое бывает, например, в языках Бейсик и Perl, если не указан явно специальный режим strict. Язык Java создавался в контексте анализа типичных ошибок и проблем, возникающих в проектах на языке Си++. Создатели Java постарались внести в синтаксис и базовую парадигму такие ограничения, чтобы типичные ошибки программистов на Си++ просто не могли появиться в проектах на Java. Это очень важная идея: если умело заключить себя в рамки, можно получить выгоду. Следует отметить, что в крупных корпорациях часто программистам выдаётся список правил оформления программ и набор конструкций, которые нельзя использовать в коде, несмотря на то, что сам язык их допускает. Излишняя гибкость языка иногда вредна, так как позволяет программистам писать мутные и запутанные программы. Новые языки программирования делают так, чтобы не искушать программистов и не давать им возможности писать путано и с ошибками.
Чистота и ясность кода, читаемость кода. Далее всего здесь продвинулся, видимо, Руби. Сегодня на всех официальных сайтах программных средств среди первых достоинств указывается "естественность синтаксиса" или "близость к естественному языку" (обычно английскому). Конечно, это немаловажный фактор. Давно прошло время, когда люди подстраивались под компьютеры и кропотливо переводили свои идеи и алгоритмы в машинный язык нулей и единиц. Сегодня компьютеры все более и более подстраиваются под человеческий язык. Это удобно. Увеличивается скорость написания программ, хотя обычно это идёт в ущерб скорости выполнения и вообще рациональности получающейся программы.
Чистота и целостность парадигмы, заложенной в основу языка. Например, языки Smalltalk и Ruby базируются на чистой объектно-ориентированной парадигме, а Haskell - на чистой функциональной парадигме. Эта чистота полезна, чтобы программист чётко представлял модель, которой он ограничен, и в терминах которой ему нужно мыслить при проектировании программы.
Простота синтаксиса, прозрачность интерпретации языковых конструкций. Например, синтаксис языка Python настолько прост, что его описание помещается на одну страницу. Это позволяет программисту всегда понимать то, что он написал. Простота синтаксиса, которая с одной стороны является ограничением, может быть очень полезной, так как позволяет писать ясные, читаемые программы и не думать о том, как же именно компилятор (интерпретатор) оттранслирует ту или иную конструкцию.
Многогранность и гибкость, возможность писать сложные программы коротко и красиво. Таким свойством обладают сейчас языки Perl, Ruby, Python. Но следует отметить, что такая универсальность языков может иметь и недостатки, так как часто приводит к излишнему усложнению синтаксиса. Например, очень многогранен Perl, он богат различными конструкциями и хитрыми штучками, которые позволяют записывать сложную логику очень коротко ("коротко о многом"). В итоге очень легко написать программы, которые потом невозможно читать. Впрочем, то же самое касается и языков Си и Си++. Языкам Ruby, Python многогранность даётся с меньшими потерями, нежели Perl и Си++.
Наличие стандартных библиотек и наличие средств интеграции проектов друг с другом и с другими системами и технологиями. Cегодня все уважающие себя языки предоставляют средства для работы с базами данных, для создания графических интерфейсов, для работы с сетевыми протоколами и создания приложений с архитектурой клиент-сервер. Сегодня идёт непрерывное соревнование между скриптовыми языками программирования типа PHP, Ruby, Python, Perl и др. в том, насколько хорошо развиты в них средства интеграции с различными технологиями. Кто-то умеет работать с OpenGL, а кто-то нет.
Возможность разрабатывать адаптивные системы. Язык должен быть таким, чтобы программы, написанные на нём, не были косными и неповоротливыми. Язык должен допускать возможность внесения малых изменений в код, чтобы подстроится под динамически меняющуюся и усложняющуюся задачу. Краеугольными камнями адаптивности языковых программных средств являются гибкая многоуровневая модульность (как у языков Java, Ruby, Python, Tcl) простота средств экспорта и импорта функциональности (имеются в виду средства, направленные на то, чтобы проекты могли делится друг с другом классами, объектами и функциями) и средства поддержки рефакторинга - глобальных революционных изменений кода, проходящих сквозь модули и направленных на улучшение читаемости кода и избавление от накопившегося в процессе эволюции груза ненужной функциональности.
Есть и другие номинации. Язык Python сегодня победитель в номинации "простота синтаксиса", а Perl более, чем какой-либо другой язык удобен для обработки текстов и CGI-скриптинга. Язык Python в принципе создавался как язык интегратор. С его помощью можно интегрировать различные приложения и создавать свои собственные пакеты и новые макроязыки.
Итак, Perl многогранен, Python прост, Python красив, Ruby тоже молодец, Java и Си технологичны. Номинаций много и явного победителя нет, так же как и нет одежды, которая одинаково хорошо подходит под летнюю, дождливую или зимнюю погоду. Температура и влажность - всего лишь два параметра, а в языках программирования их гораздо больше.
В индустрии компьютерных технологий возникают самые различные задачи. Для одной задачи удобен один язык, для второй – другой. В индустрии WEB-программирования популярны языки Perl, PHP. Мало кто пишет динамические сайты на машинных языках типа Си, так как «игра не будет стоить свеч». Зато при написании операционных систем и системных инструментов, при решении задач, где скорость важна, при разработке крупных систем, от которых требуется высокое качество и технологичность, язык Си является стандартом де-факто и де-юре. Физики и математики (в том числе школьники) просто обязаны познакомится с функциональными языками программирования типа Лиспа, Хаскелла или Mathematica. Mathematica позволяет строить различные модели и интерактивно исследовать их, по ходу дела визуализируя {О языках, предоставляющих инструменты для визуализации данных следует отвести отдельный разговор.} результаты и анализируя их статистическими и другими методами. Кроме того, Mathematica позволяет производить символьные вычисления, например, находить производные и первообразные функций, вычислять суммы бесконечных рядов, и др. По-своему хороши, интересны и уникальны языки Prolog, Caml, Clips, Assembler - познакомиться с их принципами полезно каждому программисту.


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: