Connect with us

Программирование

Обзор языков программирования

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

SwiftBook

Опубликовано

/

     
     

Компьютерные программы часто описываются как “наборы инструкций”, и компьютерные языки воспринимаются многими только как словарный и синтаксический способ обеспечения этих инструкций.

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

Но реальность программирования гораздо сложнее.

Программирование сегодня

Это странно, но большинство действительно “глобальных” идей в компьютерном программировании были разработаны еще в 1950-х и 60-х годах. С тех пор появилось много новых языков, но ни один из них не реализует действительно нового подхода к логике и вычислениям.

Разработка новых языков программирования в течение последних нескольких десятилетий была основана на опыте разработчиков. Это означает, что появился код, который стало проще писать (движущая сила Ruby) и проще читать (Python), и делать определенные типы логических структур и способы решения проблем более интуитивными.

Некоторые языки были разработаны для решения конкретных проблем в программировании (например PHP и SASS), чтобы управлять определенными типами систем (SQL), или для работы в определенной среде или на определенной платформе (Java и JavaScript). Некоторые языки были разработаны специально для того, чтобы помочь новичкам научиться программировать (классическими примерами являются BASIC и Scratch).

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

Относительно недавнее развитие включает в себя такое понятие, как SOA (Service Oriented Architecture- сервисо-ориентированная архитектура) и MVC (Model-View-Controller), а также фреймворки, такие как  Ruby on Rails, позволяющие программистам легко работать в рамках этих парадигм.

Список языков программирования

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

Кодировка ASCII

  • Кодировка символов является одним из основных компьютерных и Интернет аспектов. ASCII – это первая, широко использованная система кодировки символов. Она была вытеснена UTF-8, но ASCII по-прежнему является основой для подавляющего большинства символов в Интернете и на сегодняшний день. Понимание этого очень важно для программистов. Читайте подробнее здесь (англ): The Ultimate Guide to ASCII Encoding

ASP / ASP.NET

  • ASP – это аббревиатура для Active Server Pages. Это первый скриптовый серверный язык для  веб-сервера Microsoft IIS. ASP был заменен на серверный фреймворк с открытым исходным кодом – ASP.NET. Подробнее (англ): ASP Primer

AutoLISP

  • AutoLISP – это простой, легкий, интерпретируемый язык программирования, созданный специально для автоматизированного проектирования программного обеспечения. Читайте об этом (англ): AutoLISP Resources

Awk

  • Awk является чрезвычайно мощным языком программирования для обработки текстов, позволяющим извлекать данные из файла или другого источника, и выводить их в любом формате, который вам нужен. Он является уже старым инструментом, но все еще так же полезен, как и раньше. Узнайте подробнее (англ):  Awk Resources.

BASH

  • Bash – это наиболее часто используемый интерфейс командной строки в мире Unix. Это интерфейс на основе текста по умолчанию и для Linux и для Mac OS X. Подробнее (англ): Bash Scripting Guide

Common Lisp

  • Lisp является довольно уникальным языком программирования, возможно, самым древним языком и до сих пор продолжает использоваться. Это особенно важно в области искусственного интеллекта. Подробнее (англ): Common Lisp

C

  • Если мы включим сюда две производные этого языка, то смело можно будет сказать, что ни один язык не проиносил большей пользы и большего влияния, чем С. Это особенно важно для развития операционных систем и другого программного обеспечения. Многие компиляторы и интерпретаторы для других языков написаны на языке C. Подробнее (англ): C Developer Resouces

C++

  • Первоначально он назывался “C с классами”, C++, во многих отношениях, просто более продвинутый преемник C (хотя в целом ситуация сложнее). C++ был разработан, чтобы добавить высокий уровень парадигмы программирования C, сохраняя при этом возможности аппаратной манипуляции низкого уровня. Многие из этих дополнений добавлялись в C на протяжении многих лет, и языки больше похожи на два диалекта одного и того же языка. Подробнее (англ): C++ Developer Resources

C#

  • Использовался в качестве основного языка для .NET программирования, похож на C++, является расширением языка программирования C, но с важным дополнением в виде объектно-ориентированных возможностей. Подробнее (англ): C# Resources

CSS / CSS3

  • CSS или Cascading Style Sheets, также не является языком программирования, а языком стиля страницы – это язык, предоставляющий стиль и правила компоновки документам и приложениям. Является основным используемым в Интернете языком стиля. Подробнее: CSS Resources

Emacs Lisp

  • Emacs уже давно был известен как популярный и мощный текстовый редактор. Но добавление в него Emacs Lisp, превращает его в интегрированную среду разработки для почти любого языка программирования. Подробнее (англ): Emacs Lisp Resources Page.

F#

  • F# – язык программирования общего назначения. Разработан, чтобы быть чрезвычайно эффективным. Будучи изначально только языком Microsoft, теперь является языком с открытым исходным кодом и используется на всех платформах. Подробнее (англ): F# Resources .

FORTAN

  • Fortran впервые появился в 1957 году и до сих пор используется для решения некоторых из наиболее сложных проблем современной науки и техники. Подробнее (англ):  Fortran Resources

FORTH

  • Работа над Forth началась в 1968 году, и язык обычно используется на оборудовании, не имеющем традиционную операционную систему. Он также широко используется для управления станками. Подробнее (англ): FORTH Resources

Haskell

  • Haskell является одним из наиболее популярных функциональных языков программирования, в дополнение к тому, что стал прототипом для дюжины других языков. Он широко используется в деловых и научных кругах и является отличным языком, с которого стоит начать знакомство с функциональным программированием. Подробнее (англ): Haskell Resources

HTML

  • HTML не является языком программирования. Это язык разметки – язык добавления смысловых и стилистических аннотаций содержимому. Является основным языком для веб-контента. Знание его необходимо и обязательно всем веб-дизайнерам и веб-разработчикам, а также всем (писателям, редакторам), кто производит Интернет контент. Подробнее (англ): Ultimate Guide to HTML и Composing Good and Valid HTML

IDL

  • IDL, или Interactive Data Language, это язык программирования, используемый в основном для анализа и визуализации данных. Он до сих пор широко используется в аэрокосмической промышленности и астрономии. Подробнее (англ): IDL Resources

INTERCAL

  • INTERCAL является пародийным компьютерным языком, разработанным в начале 1970-х годов. Его создали как шутку, чтобы показать как технически сложны языки и трудно читаемы. Это реальный язык, который можно скачать, и с помощью которого можно даже что-то сделать. Подразумевается, что вы должны быть хорошо с ним знакомы для этого – но, опять же, не слишком хорошо, ведь и это не понравится самому INTERCAL. Подробнее (англ): INTERCAL Introduction and Resources

Java

  • Java является языком высокого уровня и предназначен для использования на Java Virtual Machine. Имеет очень мало внешних зависимостей, и был предназначен для работы на любой физической машине. Много используется в сетевой архитектуре, а также во встраиваемых устройствах и других вычислительных приложениях. Подробнее (англ): See our detailed guide to Java.

Javascript

  • JavaScript (не имеет фактического отношения к Java) это скриптовый язык, изначально разработанный для использования в веб-браузерах. Поэтому он имеет встроенную возможность работы с Document Object Model (DOM), отображением находящегося в памяти контента веб-страниц. Является основным языком программирования для front-end веб-разработки. В основном управляется событиями, и, благодаря Node.JS, в последнее время получил признание как серверный язык. Подробнее (англ): More on Javascript и jQuery. И здесь: Bootstrap Resources

Ksh

  • Korn Shell (ksh) представляет собой интерфейс командной строки, используемый на Unix. Он был ранней оболочкой (shell), совместимый со стандартной оболочкой Bourne, но со всеми классными интерактивными функциями оболочки C. Подробнее (англ): Korn Shell Programming Resources

Linux Programming

  • Программирование Linux включает в себя все: начиная от скриптов оболочки до разработки приложений и разработки ядер. Подробнее (англ): Linux Resource

Logo

  • Logo один из самых ранних языков по обучению программированию, и до сих пор, вероятно, самый известный. Он известен своей черепахой, которую дети заставляют передвигаться компьютерными командами. Весело обучает программированию. Подробнее (англ): Logo Programming Resources

ML

  • ML первоначально разработан как язык мета-программирования: язык для создания других языков. Но со временем он стал языком общего назначения, широко использовался в образовании, математике, естественных науках и даже финансах. Подробнее (англ): ML Resource and Introduction.

MPI

  • Message Passing Interface (Интерфейс передачи сообщений) представляет собой стандартный протокол для отправки сообщений между процессами или программами. Был реализован в ряде языков программирования, включая C, C++, Java и Python. Благодаря MPI стали возможны параллельные вычисления. Подробнее (англ): See our Guide to MPI

Сетевое программирование с интернет-сокетами

  • Сетевое программирование это процесс объединения компьютеров в сеть, а также создание программных систем, которые будут работать по всей этой сети. Гнездо (сокет) представляет собой конечную точку данных для этой сети, предоставляя интерфейс (API) для взаимодействия с системой извне. Большинство сетевых сокетов – это интернет сокеты, а это значит, что они используют Интернет протокол для связи. Подробнее (англ) :More about network programming & sockets

OAuth

  • Вы, несомненно, использовали эту систему много раз, но вы могли этого даже не знать. Например, некоторые комментирующие системы позволяют войти с вашей учетной записью на Facebook или Google+. Это делается с помощью OAuth. Подробнее (англ): More on OAuth

Objective-C

  • Еще одна версия C, созданная в 1980-е годы для того, чтобы обеспечить полностью объектно-ориентированную реализацию C. Сейчас основное применение этого языка приходится на Mac OSX  и операционные системы iOS. До недавнего времени iOS приложения должны были быть написаны на Objective-C, но сейчас можно писать также на Swift. Подробнее (англ): More on Objective-C

OCaml

  • OCaml является объектно-ориентированным функциональным компьютерным языком. По ML традиции, он много используется для написания других языков программирования и фреймворков. Подробнее (англ): OCaml Introduction and Resources.

Разработка операционной системы

  • Эверестом среди работ по программированию считается разработка операционной системы. Если вы хотите доказать себе, что можете написать все, что угодно, то нет ничего лучше, чем написать свое собственное ядро операционной системы и связанные с ней инструменты.Но будьте осторожны: это путешествие по силам только храбрым и истинным программистам! Подробнее (англ): Operating System Development Resources.

Perl

  • Очень полезный инструмент практически любого программиста. В качестве интерпретируемого языка его не нужно компилировать, иногда упоминается как “швейцарский армейский нож” скриптовых языков. Подробнее (англ): Perl Resources

PROLOG

  • Пролог – язык логического программирования, разработан для обработки естественного языка. Подробнее (англ): Prolog Intro & Resources

Pure Data

  • Pure Data является уникальным визуальным языком программирования. Был создан специально для того, чтобы позволить пользователям создавать видео, аудио и графические работы. Подробнее (англ): Pure Data Resource Page.

Python

  • Python является языком программирования высокого уровня. Интерпретируемый (некомпилируемый) язык, также известный как “скриптовый язык”. В основном используется в качестве инструмента для выполнения специализированных задач программирования, таких как задачи по автоматизации и анализу данных. Имеет сильный набор инструментов для математических и научных вычислений, часто используется исследователями. Подробнее (англ):Python Resources

Ruby on Rails

  • Ruby on Rails – это фреймворк для веб-разработки для языка программирования Ruby. Он обеспечивает архитектуру MVC (Model View Controller), уровень абстракции базы данных, а также множество инструментов для ускорения процесса программирования веб-приложений. Очень популярен для быстрой разработки веб-приложений. Подробнее (англ): More about Ruby on Rails

SAS

  • SAS является специализированным языком, предназначенным для анализа статистических данных. Широко используется в правительственных, научных кругах и бизнесе. Для людей, обладающим большим количеством данных, SAS является очевидным выбором. Подробнее (англ): SAS Programming Resources.

Scala

  • Scala является относительно новым языком – более или менее новой и лучшей Java. Это отличный язык для Java-программистов, которые хотят быть более эффективными, или для людей, кто только начинают изучать программирование и хотят изучать мощный язык, который не будет ограничивать их в будущем. Подробнее (англ): Scala Resources.

Scheme

  • Scheme  – старый язык, но до сих пор используется для обучения программированию и более сложных предметов в информатике. Основан главным образом на Lisp, и частично на ALGOL. Подробнее (англ): Scheme Resource page.

Scratch

  • Язык программирования Scratch был создан специально для обучения программированию детей в возрасте от 8 до 16 лет. Scratch – легкий, и с ним изучать основы логики программирования детям можно в увлекательной игровой форме. Подробнее (англ): Scratch Resources

Simula

  • Simula – исторически важный язык, так как это был первый язык, внедривший понятия, ставшие основой для объектно-ориентированного программирования. Подробнее (англ): More on Simula’s interesting history.

SMIL

  • SMIL (Synchronized Multimedia Integration Language) инструмент для тех людей, которые хотят создавать и распространять презентации. Особенно полезен, если вы хотите создавать презентации, которые должны время от времени обновляться. Подробнее (англ): SMIL Guide

SQL

  • SQL (Structured Query Language) – язык, используемый для связи с Relational Database Management Systems (RDBMSes). SQL позволяет программисту создавать структуры данных, вставлять и редактировать данные, а также их запрашивать. Подробнее (англ): SQL Guide

Stata

  • Stata это среда разработки и язык программирования для решения серьезных статистических проблем. И хотя он создан довольно давно, но все еще широко используется. Если вы связаны со статистической работой, Stata – отличный инструмент. Подробнее (англ): Stata Programming Resources

Swift

  • Swift является новыйм языком программирования, разработанным компанией Apple, для iOS, OS X, watchOS, tvOS и Linux. Это язык будущего для разработчиков программ и приложений для устройств Apple. Подробнее (англ): Swift Resources

S-PLUS

  • S-PLUS является коммерческой версией мощного языка программирования S, разработанного для выполнения статистического анализа. Проект GNU имеет свою собственную версию S, называемую R. Все необходимые ресурсы о S с акцентом на S-PLUS: S-PLUS Programming Resources Page.

UNIX Programming

  • Широта программирования на Unix велика. Она охватывает диапазон от административных скриптов к коду на основе текста до разработки X Window. Подробнее (англ): UNIX Programming Resources

XML

  • XML  хорошо структурированный язык для разметки, предназначен, как для чтения человеком, так и машиной. Подробнее (англ):XML Guide & Validators

Урок подготовил: Акулов Иван

Источник урока

SwiftBook
Комментарии Facebook
Продолжить чтение
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Программирование

Когнитивные искажения в программировании

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

Анна Гуляева

Опубликовано

/

Разработчик Facebook Яш Ранадив описал пять когнитивных искажений, чаще всего встречающихся в работе программиста.

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

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

Гиперболическое дисконтирование

Желание моментальной отдачи вместо большего результата позже

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

Эффект IKEA

Переоценивание вашего решения проблемы и недооценивание остальных решений

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

Преждевременная оптимизация

Оптимизация до того, как она нужна

Название говорит само за себя. Если вы добавите спойлер на старый автомобиль перед тем, как почините двигатель, машина не поедет быстрее. Хорошим примером этого является создание идеально настроенного и производительного кода для эксперимента.

Ошибка планирования

Оптимистичная недооценка времени, требуемого для завершения задачи

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

Не так страшны первые 90% проекта, как вторые 90% проекта.

Заблуждение новизны

Придание большей значимости недавним событиям, чем произошедшим давно

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

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

 

Анна Гуляева
Комментарии Facebook
Продолжить чтение

Исследования

Самые нелюбимые языки программирования

Stack Overflow обобщил эту статистику и вывел Топ нелюбимых языков программирования.

Леонид Боголюбов

Опубликовано

/

В  разделе Stack Overflow Jobs вы можете разместить свою историю разработчика – показать достижения и карьерный рост. Там же можно указать технологии, с которыми вы хотите или не хотите работать.

Stack Overflow обобщил эту статистику и вывел Топ нелюбимых языков программирования. Он представлен на графике ниже и процент в нем означает соотношение отрицательных отзывов к общему количеству (50% значит, что количество лайков и дислайков равно, а 1% значит, что на 99 лайков приходится один дислайк).

Самые нелюбимые языки программирования – Perl, Delphi и VBA. Самые любимые – R, Kotlin и Typescript.

В целом самые теги – технологии и средства разработки:

Самые любимые теги:

Интересная еще диаграмма противостояния – если человек любит А, то не любит Б. например, iOS и  Android, Unix и Windows:

 

 

Леонид Боголюбов
Комментарии Facebook
Продолжить чтение

Медиа

Видео Droidcon NYC 2017

Опубликованы записи конференции Droidcon 2017, проходившей в Нью-Йорке.

AppTractor

Опубликовано

/

Автор:

Опубликованы записи конференции Droidcon 2017, проходившей в Нью-Йорке.

Всего 64 видео, среди которых, например:

  • Кодлаб: Прототипирование веселья с Android Things
  • Чистый дизайн приложения с Architecture Components
  • Кодлаб: Глубокие ссылки для Instant Apps
  • Многопотоковый рендеринг на Android (с Litho и Infer)
  • Нет интернета? Нет проблем!
  • GraphQL на Android

AppTractor
Комментарии Facebook
Продолжить чтение

Календарь

ноябрь

17ноя - 19Весь деньТИЛТЕХ МЕДХАК

24ноя - 26Весь деньWhat the hack?!

25нояВесь деньSmart Taler 2017

25нояВесь деньLadies Code: время технологий

30нояВесь деньSmart Cars & Roads 2017

декабрь

5дек18:30- 22:00Яндекс изнутри: глазами iOS-разработчика

8дек - 9Весь деньКубок СTF России

9дек - 10Весь деньGames Gathering 2017

9декВесь деньЛекционный день по игровой индустрии

Наша рассылка

Каждому подписавшемуся - "1 час на UI аудит": бесплатный ускоренный курс для разработчиков веб и мобильных приложений!

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Наш Facebook

Популярное

X

Спасибо!

Теперь редакторы в курсе.