Что такое современное программирование?

      Комментарии к записи Что такое современное программирование? отключены

О том, что такое современное программирование, порассуждали пользователи сайта Quora. Говорим о самых занимательных и нужных ответах.

Что такое современное программирование?

Тим Менш, разработчик ПО

Понятие «современный» возможно трактовать с точек зрения и разных позиций. Я буду строить собственный ответ, придерживаясь той идеи, что «считается самая эффективной практикой сегодняшнего дня».

Современные и самые эффективные способы:

  1. Опыты с новыми языками – это в любой момент весьма интересно, но одновременно с этим и непредсказуемо. Исходя из этого предпочтение стоит дать проверенным и признанным языкам:
    • Язык Go начал обширно употребляться около восьми лет назад, но за его спиной стоит Гугл, исходя из этого данный язык достаточно скоро обретает все громадную популярность и усиливает собственную производительность.
    • Языку Kotlin всего 7 лет, и он кроме этого пользуется полной помощью компании Гугл. Этот язык трудится для развитой экосистемы JVM. При определении переменных, полей и т.д. Kotlin разрешает указать, может ли в них храниться ссылка null, что существенно повышает безопасность и разрешает избежать неточностей на миллиарды долларов. Благодаря данной особенности, и некоторым вторым эргономичным и нужным функциям, в проектах для JVM при выборе языка решение значительно чаще принимается поэтому в пользу Kotlin. Стоит уточнить, что хоть Scala владеет похожим рядом преимуществ, но он несравнимо сложен если сравнивать с Kotlin. В принципе, придерживаясь указанных в этом перечне рекомендаций, вы кроме этого имеете возможность применять Java.
    • C++, практически, до сих пор есть главным стандартом для системного программирования. Он довольно часто употребляется для написания кода ядра, и для некоторых драйверов, и вряд ли данный язык планирует исчезнуть в скором будущем.
    • C# — это красивый язык в том случае, если вы нацелены на экосистему Микрософт, или используете Unity либо Xamarin. Если вы желаете большего разнообразия функционала, тогда обратите ваше внимание на F#.
    • TypeScript достаточно молод, но он может похвалиться помощью наибольшего уровня со стороны Микрософт. Он ликвидирует так огромное количество угроз при работе с JavaScript, что его применение делается неотъемлемым требованием для разработки любого сайта либо Node.js.
    • Python направляться применять лишь тогда, в то время, когда в нем имеется необходимость. К примеру, проекты для машинного обучения и маленькие скрипты для обработки данных – вот те сферы, в которых Python покажет себя наилучшим образом. Исходя из отсутствия у него строгой типизации, я бы упорно не рекомендовал его к применению в больших проектах.

    1. По окончании того, как язык выбран, учите его:
      • Любой из языков, включенных в мой перечень, развивается . Какой бы вы ни выбрали, попытайтесь быть на гребне волны и в курсе всех новых функций.
      • Если вы встречаете такую функцию, как «лямбда», и не понимаете ее, тогда попытайтесь определить по данной теме как возможно больше, пока ваших знаний не станет достаточно. Поищите примеры, видео либо статьи в сети. В случае, если же вы не разберетесь, то в необходимый момент вы не станете владеть этим инструментом – вы кроме того не сможете осознать, где и что искать.
      • Вместо слепого следования чисто функциональному или объектно-ориентированному подходу, лучше все же придерживаться смешения парадигм:
        • Не все шаблоны проектирования в ООП одинаково хороши. Придерживайтесь определенной иерархии.
        • В случае, если это быть может, применяйте функциональные паттерны при преобразовании данных.
        • Неизменяемый интерфейс возможно эргономичен при с определенными примерами данных. Применяйте его в том случае, если он будет нужен. Не нужно его применять, если он еще больше усложнит вашу проблему.
        • Применяйте современный редактор/IDE:
          • Если вы используете хороший редактор, то он сможет посоветовать вам, где закралась синтаксическая неточность и как именно возможно ее исправить. Интегрированная среда разработки программ (IDE) продемонстрирует вам документы для применяемой вами функции «member», окажет помощь вам с параметрами и укажет на ваши опечатки. Это бесценная помощь. Так по какой причине бы не воспользоваться ею.
          • Подходящий инструментарий:
            • Git получил невообразимую популярность. Легко применяйте его.
            • Docker – это тот инструмент, которым вы непременно должны мочь пользоваться.
            • docker-compose либо kubernetes кроме этого должны входить в перечень инструментов, которыми вы обладаете.
            • CI/CD: вы должны знать, что означают эти акронимы, а ваши проекты должны быть выстроены так, дабы их было легко разрабатывать и тестировать.

            Джереми Дэтс, 16 лет в разработке ПО

            Любое познание фразы «современное программирование» будет так или иначе субъективным. На мой взор, «современное программирование» включает в себя последовательность языков программирования, фреймворков, комплектов средств для разработки программ, и парадигмы программирования, каковые возьмут широкое распространение в ближайшие три года. 20 лет назад в качестве ближайшего будущего я бы разглядел срок в пять лет, но в 2018 году, учитывая скорость происходящих трансформаций, логичнее будет сказать только о ближайших трех годах.

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

            К примеру, языку C# уже 17 лет, и он подвергался дополнениям и изменениям уже 7 раз (вот-вот обязана выйти версия C# 8.0). За прошедшие годы компания Микрософт проделала хорошую работу, внедряя в него популярные и нужные функции. К примеру, лямбда-выражение (C# 3.0), динамическое связывание (C# 4.0), асинхронные способы (C# 5.0) и т.д.

            Помимо этого, за последние пара лет был полностью внедрен внедрение зависимости и (шаблон проектирования). В последних примерах фрейворков возможно заметить DI везде. В случае, если разумно сочетать новые функции языка и DI, то современный код на C# будет смотреться совсем по-второму, нежели код, что программисты писали на этом же языке в начале 2000-х. То же самое, хоть и в меньшей степени, возможно сообщить о Java и других популярных языках.

            расширение и Улучшение функционала существующих языков, и появление новых – это поэтому то, что разрешает нам, разработчикам ПО, принимать и использовать самые оптимальные ответы. В случае, если новые опции способны отвечать тем задачам, для исполнения которых они были созданы, то в итоге мы приобретаем ПО более большого качества. Под «более высоким качеством», в большинстве случаев, подразумевается следующее: лучшая производительность, немногострочность (меньшее количество строчков кода, нужных для написания/обслуживания программы), меньшее ресурсопотребление, более эластичная адаптация программы к исполнению определенных сценариев, что разрешает сэкономить средства. Все это растолковывает, по какой причине нужно стремиться поэтому к «современному программированию» и его развёртыванию и дальнейшему развитию.

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

            Кори Батлер, основатель Author.io

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

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

            Я довольно много писал о браузерах, каковые последние несколько десятилетий трудятся на JavaScript. Но в прошлом серверы не могли сами инициировать коммуникацию с браузером – они имели возможность лишь отвечать на его запрос. И подобная модель диктовала определенные правила, в соответствии с которыми существовали и развивались интернет-соединения. До создания ES5, в JavaScript не существовало для того чтобы концепта, как геттеры/сеттеры. Но все изменилось с введением стандарта ECMA, по окончании чего браузеры стали поддерживать WebSockets/WebRTC/SSE.

            WebSockets/WebRTC/SSE – это функции платформы, а не часть языка программирования. Исходя из этого для меня «современное» программирование включает в себя чисто написание кода, что будет взаимодействовать с ресурсами, к коим мы совсем сравнительно не так давно получили доступ.

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

            Факультет компьютерных наук. Где готовят лучших программистов в России и Мире. Программирование


            Интересные записи: