Си подобные языки: Какие есть СИ-подобные языки? — Хабр Q&A

Почему Си все еще популярен? OTUS

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

Немного истории

Сегодня многие считают язык Си устаревшим. В каком-то смысле это так, ведь он появился в далеком 1972 году. Разрабатывался он с учетом того времени, то есть в соответствии с характеристиками компьютеров, которые существовали полвека назад. А какими были эти компьютеры? Если сказать упрощенно, то по своему функционалу они напоминали современный калькулятор.

Несмотря на все вышесказанное, спустя полвека Си совсем не умер, о нем не забыли. Секрет долголетия прост — язык постоянно развивается и поддерживается, несмотря на все «но». А еще он обеспечивает быстрое выполнение и хороший отклик, то есть быстродействие и производительность.

Многие компании успешно применяют Си десятки лет, ведь он до сих пор часто работает быстрее, чем конкуренты. Почему он так быстр? Потому что выполняется, по сути, на уровне процессора.

Достаточно посмотреть на рейтинг хотя бы TIOBE, чтобы увидеть, что C уже много лет в топе и уходить оттуда не собирается. Мало того, он нередко занимает первые места в этом рейтинге, вот, к примеру, результат за май 2021 года.

Интересный факт: на основе C создано много других языков программирования, речь идет о так называемых «Си-подобных» языках — он построены на базе C.

К примеру:

  • C++,
  • C#,
  • Java,
  • Objective C,
  • Perl,
  • Scala и прочие.

Не менее интересно и следующее наблюдение: именно для Си выпущено наибольшее количество различных самоучителей и учебников в стиле «для чайников», «основы», «с нуля» и так далее. Но, учитывая возраст C, этот факт как раз таки удивления не вызывает.

Каковы еще причины популярности?

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

на основе C создано множество проектов, а эти проекты требуют постоянной поддержки, следовательно, без подготовленных кадров не обойтись;

— так как Си — это родитель многих других programming languages, то нередко советуют начать изучение программирования именно с него. И дело тут совершенно не в ностальгии — его изучение даст вам базовое понимание фундаментальных принципов работы компьютера/программ/языков программирования. То есть такие уроки не будут бесполезными. Вдобавок к этому, никто же не помешает потом перейти на другой язык: С++, C#, Java, Python и т. п. А с наработанной базой последующее изучение будет явно проще.

Программируем на Си — что на нем пишут?

Язык C до сих пор востребован на практике, вот, что можно на нем писать:

операционные системы. Когда-то давно Unix была написана на ассемблере. Потом появился Си, и Unix переписали. В 1985 году C пригодился при написании Windows. Сегодня компьютеры Apple работают с помощью ОС macOS, ядро которой создано тоже с помощью C. Девять из десяти наиболее мощных суперкомпьютеров — это тоже герой сегодняшнего разговора. Еще добавим ядра для iOS , Android и Windows Phone. Результат очевиден: Си нередко находится в фундаменте работы популярного ПО из разных сфер: от мобильных устройств до суперкомпьютеров;

Open Source-программы. Проекты, имеющие открытый исходный код, тоже нередко создаются на C. По статистике таковых чуть менее половины:

драйверы устройств. Они необходимы для подключения к вашему компьютеру различных устройств: клавиатуры, мыши, принтера, сканера и пр. Именно драйвер взаимодействует с операционной системой. Разве это не означает, что его лучше создавать на C?

языки программирования. Мы уже говорили о заслугах Си в этой области. Однако до сих пор при создании нового языка нередко применяют именно универсальный C;

базы данных. О, да… Самые популярные БД, такие как Oracle Database, MS SQL Server MySQL, SQLite и PostgreSQL, написаны на C. Почему? Потому что базы должны обладать максимальной надежностью и производительностью. Просто спросите любого C-программиста, почему для баз данных лучше выбирать этот язык. Вам ответят что-то в стиле:

графические библиотеки. Опять же, работая с графикой, мы снова ожидаем максимального быстродействия, которое может обеспечить C. В крайнем случае, если речь идет о наиболее ответственных местах, некоторые участки кода частично пишутся на языке ассемблера. Примеры библиотек: Cairo, OpenGL, SDL;

встроенные устройства. Торговые автоматы, кассовые аппараты, парковочные роботы, программно-техническая начинка вашего автомобиля — все это Си — как без него?

космические и авиационные системы. Раз опять нужна максимальная надежность, то по традиции вопрос выбора становится риторическим.

Вот и все, надеемся, материал был вам полезным.

Интересуют уроки по C? Добро пожаловать на курс в Otus!

По материалам: https://progtips.ru/yazyki-programmirovaniya/chto-napisano-na-yazyke-si.html.

Ява-подобные языки программирования на сайте Игоря Гаршина. Java



Ява-подобные языки программирования на сайте Игоря Гаршина. Java

Главная > Информатика > Java-подобные языки



Если бы в Java действительно работала сборка мусора, большинство программ бы удаляли сами себя при первом же запуске. (Robert Sewell, программист)

В  1990-х годах в связи с активным развитием Интернета распространение получили языки, позволяющие создавать сценарии для веб-страниц — главным образом Perl, развившийся из скриптового инструмента для Unix-систем, и Java.

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

Разделы страницы о Ява-подобных языках программирования:

  • Язык программирования Java
  • Язык программирования Groovy
  • Язык программирования Scala

Также смотрите страницы о клиентских и серверных средствах веб-программирования.


Язык программирования Java

Java — это C++, из которого убрали все пистолеты, ножи и дубинки. (James Gosling, один из создателей Java)

Ява имеет Си-подобный синтаксис. Считается платформонезависимым и полностью объектно-ориентированным языком.

На основе языка Java был создан скрипт-язык программирования клиентской части веб-сайта

JavaScript (на пару с VBScript).

Язык Java зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента — языка программирования. Стало очевидным, что необходим платформо-независимый язык программирования, позволяющий создавать программы, которые не приходилось бы компилировать отдельно для каждой архитектуры и можно было бы использовать на различных процессорах под различными операционными системами.

Язык Java потребовался для создания интерактивных продуктов для сети Internet. Фактически, большинство архитектурных решений, принятых при создании Java, было продиктовано желанием предоставить синтаксис, сходный с Си и Cи++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнением кода.

В Java добавлены все хорошие черты C++.

Три ключевых элемента объединились в технологии языка Java:

  1. Java предоставляет для широкого использования свои апплеты (applets) — небольшие, надежные, динамичные, не зависящие от платформы активные сетевые приложения, встраиваемые в страницы Web. Апплеты Java могут настраиваться и распространяться потребителям с такой же легкостью, как любые документы HTML.
  2. Java высвобождает мощь объектно-ориентированной разработки приложений, сочетая простой и знакомый синтаксис с надежной и удобной в работе средой разработки. Это позволяет широкому кругу программистов быстро создавать новые программы и новые апплеты.
  3. Java предоставляет программисту богатый набор классов объектов для ясного абстрагирования многих системных функций, используемых при работе с окнами, сетью и для ввода-вывода. Ключевая черта этих классов заключается в том, что они обеспечивают создание независимых от используемой платформы абстракций для широкого спектра системных интерфейсов.
  • Введение в программирование на языке Java. В т.ч. установка Java SDK и Eclipse
  • Java по-русски. Часть первая: Книги.
  • Java по-русски. Часть вторая: интернет-ресурсы.
  • Начинающим Java программистам. Основные сетевые ресурсы. Пакеты и библиотеки Ява.

Язык программирования Groovy

Groovy — объектно-ориентированный язык программирования, разработанный для платформы Java как дополнение к языку Java с возможностями Python, Ruby и Smalltalk. Groovy использует Java-подобный синтаксис с динамической компиляцией в JVM байт-код и напрямую работает с другим Java кодом и библиотеками. Язык может использоваться в любом Java-проекте или как скриптовый язык. Groovy завершил процесс стандартизации в Java Community Process JSR 241.

  • Groovy в Википедии.

Мультипарадигмальный язык Scala

Scala — мультипарадигмальный язык программирования, спроектированный кратким и типобезопасным для простого и быстрого создания компонентного программного обеспечения, сочетающий возможности функционального и объектно-ориентированного программирования.

Язык программирования Scala является «симбиозом» Java и C#. Это не первый язык, комбинирующий ООП с функциональным подходом, но он начал набирать обороты в тот момент, когда развитие Java замедлилось. Более того, создатели Scala решили, что язык должен работать на виртуальной машине JVM и предоставлять доступ к Java-библиотекам. Язык Scala объединяет три вещи: статическую типизацию, объектно-ориентированный и функциональный подход.

Преимущества Scala оценили многие крупные компании – Twitter, LinkedIn, Foursquare, Novell, Siemens, GridGain. Однако в академических кругах это язык пока популярен больше.

Первые версии языка созданы в 2003 году коллективом лаборатории методов программирования Федеральной политехнической школы Лозанны под руководством Мартина Одерски, язык реализован для платформ Java и .Net. По мнению Джеймса Стрэчена (англ. James Strachan), создателя языка программирования Groovy, Scala может стать преемником языка Java.

Scala впитала значительное число концепций и синтаксических соглашений Java и C#. Способ выражения свойств во многом заимствован из Sather. Из Smalltalk взята концепция унифицированной объектной модели. Из BETA пришла идея, что всё, включая классы, должно допускать вложенность.

Абстрактные типы в Scala очень похожи на абстрактные типы сигнатур в SML и OCaml, обобщённые в контексте полноценных компонентов. В некотором смысле Scala — это продолжение работы Pizza.

Язык популярен в компьютерной лингвистике.

  • Scala в Википедии.

На правах рекламы (см. условия):    



Страница обновлена 28.09.2022

Объективные преимущества синтаксиса в стиле C

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

Обтекание блоков одним символом имеет разумный смысл; во-первых, он быстро набирается, не занимает много места на экране (в отличие от пары ключевых слов BEGIN-END). Во-вторых, синтаксис довольно гибкий, так что вы можете форматировать свои блоки так, как вам нужно/хотите в особых случаях (что вы не можете сделать в чем-то вроде Python). как почтовый клиент, и при этом быть читаемым как людьми, так и компилятором (это единственная реальная проблема, с которой я сталкиваюсь с отступами для блоков в стиле Python).

Но зачем фигурные скобки? Я не знаю, каков был исторический прецедент их использования в C (или, что более вероятно, в BCPL), но рискну предположить. На «стандартной» американской клавиатуре не так много парных символов: {} [] () и <> как раз об этом. Если мы хотим упростить жизнь компилятору, нам нужны уникальные символы для BEGIN и END, поэтому используйте что-то вроде | или # для концов блока отсутствует. Из наших пар {} на самом деле единственная, которая еще ничего не означает — () и [] имеют много математического багажа (который более или менее напрямую переводится с помощью функций и массивов), и оба < и > означают все виды вещей. Я бы тоже выбрал {} для блоков.

С новым языком, если вы не собираетесь использовать ключевые слова или отступы, зачем его менять? Легионы программистов привыкли использовать их для обозначения блоков, зачем обесценивать всю эту мышечную память?

Почти такой же аргумент применим к использованию точки с запятой. Использование чего-либо для обозначения конца строки значительно упрощает жизнь компилятору. Использование только одного символа значительно облегчает жизнь программисту. Сканируя отдельные символы на клавиатуре, точка с запятой — одна из немногих, которые с математической точки зрения мало что значат. С точки зрения английской грамматики точка (или, может быть, запятая) имеет наибольшее значение, но они уже используются в качестве десятичных точек. И, если немного прищуриться, точка с запятой в качестве конца строки имеет примерно такое же значение, как и в английском языке. И опять же, если вы начинаете новый язык, зачем его менять?

Что касается базовой краткости, я бы сказал, что это единственное, что можно объективно назвать хорошей идеей. Чем меньше символов я могу ввести, чтобы донести идею до компьютера, но при этом достаточно близко к английскому, чтобы читать, тем лучше.

(Можно возразить, что большинство языков C-типа также заимствуют большую часть словаря ключевых слов, но на самом деле большинство ключевых слов C пришло из более старых языков, таких как ALGOL, FORTRAN и BCPL, и на самом деле все они (в основном) распространены. И опять же, как только вы обучите сообщество программистов тому, что такое «цикл while», зачем менять название?)

Я бы сказал, что любой современный язык, который не использует синтаксис, очень похожий на C, делает это из-за некоторого фундаментального сдвига парадигмы (например, подход Python с отступами). Если вы делаете язык, который в основном работает одинаково, зачем что-то менять? Ваша целевая аудитория уже может нажимать на фигурные скобки мизинцами, зачем обесценивать этот конкретный навык?

Или, чтобы сделать последнее предложение еще на один шаг, если вы пытаетесь продать сообществу программистов свой новый, меняющий правила игры язык (Java, C# и т. д.), у вас будет гораздо меньше препятствий для прыгайте, если ваши клиенты уже знают синтаксис.

Изучите язык в стиле C — O’Reilly

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

Что такое язык C-стиля?

Ответ на этот вопрос зависит от того, кого вы спросите, потому что почти ничто так не доставляет разработчикам удовольствия, как споры о влиянии и происхождении языков, за исключением, может быть, споров о том, какой язык лучше. Несмотря на все споры, все согласны с тем, что C, C++, Java, C# и Objective-C — это языки в стиле C.

Учитесь быстрее. Копай глубже. Смотрите дальше.

Присоединяйтесь к платформе онлайн-обучения O’Reilly. Получите бесплатную пробную версию сегодня и находите ответы на лету или осваивайте что-то новое и полезное.

Узнать больше

В самом широком смысле, если язык использует фигурные скобки {} для выделения функциональных блоков, это язык C-стиля. Многие, но не все языки стиля C строго типизированы. Многие из наиболее популярных языков стиля C являются объектно-ориентированными (C++, Java, C#), но сам C — нет. Многие другие громкие имена, такие как Python, Perl, PHP и Ruby, также имеют влияние стиля C, хотя насколько это важно и в какой степени, зависит от того, кого вы спросите. JavaScript имеет синтаксис, подобный C, но он существенно отличается, когда вы выходите за пределы поверхности.

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

Латынь не умерла; он просто отдыхает

Я не призываю вас изучать какой-то конкретный язык в стиле C, я просто призываю вас выучить один из них. Какой из них лучше всего зависит от вашей конкретной ситуации на работе. Если вы программируете в магазине Microsoft, изучите C#. Если вам нужно создавать приложения для Android, изучайте Java. Если вы работаете над встроенными системами или чем-то близким к аппаратному обеспечению, старый добрый C, вероятно, будет наиболее полезен. Если вы работаете где-то еще, C++ — хороший выбор.

Самое волшебное в изучении языка C-стиля то, что как только вы узнаете один из них, остальные выучить будет легче. Никто больше не говорит на латыни, но выучить ее все равно полезно; среди прочего, вы получаете возможность бесплатного изучения итальянского, испанского и французского языков. Знание одного языка в стиле C не дает автоматически навыков экспертного уровня в других, но значительно сокращает кривую обучения. Можно с уверенностью сказать, что если вы знаете C#, то сможете читать Java без особых проблем. Для того, чтобы научиться его писать, требуется ускоренный курс синтаксиса, но на это уходят дни, а не месяцы. Конечно, чтобы по-настоящему свободно владеть языком программирования, требуется время, усилия и практика, но это верно для любого языка.

Термин «программист-полиглот» часто упоминается как желательная черта для разработчика. Хотя эта фраза обычно означает «я знаю кое-что помимо языков C-стиля», владение языком C-стиля — это основа, на которой вы строите свою репутацию полиглота. Язык C-стиля представляет собой базовый режим, в котором думает большинство программистов. Получив его, вы можете переходить к функциональным или другим типам языков. Переход на другую языковую парадигму означает изменение вашего взгляда на программирование, и это часто сложно, но это также и хороший опыт. Это не означает, что начинать с языка в стиле C — плохой выбор; если первый язык, который вы изучаете, функциональный, вам нужно изменить свой образ мышления, чтобы научиться императивному письму. Всегда есть кривая обучения, когда вы меняете свои основные привычки, поэтому я рекомендую начинать с наиболее распространенного исходного языка.

C — ваша система безопасности

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

Те из вас, кто выбирает язык, чтобы помочь своей карьере, должны знать языки, на которых работают. В индексе TIOBE пять лучших языков относятся к стилю C, а остальные из первой десятки имеют некоторое влияние C. Если вам не нравится TIOBE, индекс популярности языков PYPL также включает пять языков в стиле C в первой десятке. Вы можете спорить о точности любого индекса, который вам нравится, но в совокупности вы получаете довольно хорошее представление о том, что ищут работодатели. Есть некоторые гибкие работодатели, которые не настаивают на том, чтобы вы знали их язык по выбору, когда вы начинаете, но они будут искать кандидатов с самой короткой кривой обучения, а свободное владение языком в стиле C дает вам преимущество.

Даже если вы продвинулись по карьерной лестнице, знание языка в стиле C обеспечит хорошую подстраховку на случай неожиданной смены работы. Возможно, вы потратили годы на программирование на Haskell и любили его, но в любой момент может случиться беда, и если у вас есть язык в стиле C в вашем арсенале, вы лучше, чем внезапно потерявший работу программист, у которого его нет. По крайней мере, вы сэкономите много времени на интервью, объясняя, почему вы никогда не изучали C++ или Java.

Программирование хороших привычек

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *