Кажется, между этими изменениями мало общего. На самом деле они стали возможными благодаря принципам программирования, заложенным полвека назад. И чтобы лучше увидеть эту связь, мы решили вспомнить историю С++ — одного из самых «взрослых» языков программирования. Он может быть и удобным инструментом разработки, и ночным кошмаром, и частью корпоративной истории. std::begin( )









Комментарии (26)
mkshma
09.11.2018 18:49он использует неудобные заголовочные файлы
И при этом они все еще удобнее чем то, что предлагают остальные языки. Намного удобнее глянуть в хедер и увидеть что это вообще за класс такой, какой у него интерфейс, какие приватные функции есть, члены класса и вот это вот все, чем пролистывать огроменный файл и раз в 50 строк видеть название функции, а в случае с каким-нибудь JS вообще никогда не быть уверенным какие же члены класса вообще есть, потому что объявляется все в рандомных местах и доступно везде. Можно конечно же упомянуть про такую прекрасную вещь как документация и пользоваться ею, когда надо найти или узнать нужный функционал. Но если бы хоть у половины того, с чем приходится возиться, была документация — жизнь была бы сильно прекраснее. Но тут вам не там и живем с чем живем.KevlarBeaver
09.11.2018 19:57+2С современными IDE, не нужно что-то там пролистывать, чтобы узнать, что у класса есть и что он может. В языках с динамической типизацией, конечно, с этим посложнее. Но статически типизированные языки, начиная от C# и Java, и заканчивая более молодыми — в хедерах не нуждаются от слова «совсем».
mkshma
09.11.2018 20:30-1Совсем уже без своих игрушек не могут. Зачем перекладывать на инструмент то, что можно учесть в дизайне языка?
DSolodukhin
09.11.2018 21:36+2А зачем отказываться от удобных инструментов, если можно ими пользоваться и не создавать себе трудностей. Или это лишает вас чувства элитарности?
mkshma
09.11.2018 22:02-1Потому что универсальный вариант, не зависящий от инструмента, банально лучше.
KevlarBeaver
10.11.2018 00:16+1Но сейчас сложно представить ситуацию, что Вы, например, окажетесь на необитаемом острове со старой мобилкой и спутниковым интернетом, — и это будет единственная возможность зайти на сервер по ssh и исправить досадный баг, который уносит миллионы денег компании в секунду.
Нынче самые начинающие джуниоры имеют и дома и на работе машины, которые без проблем тянут весь этот ворох инструментов, присутсвующих в IDE и устанавливаемых дополнительно. Реалии таковы, что никто давноза редким исключениемне пишет чисто код чисто буквами чисто в текстовом редакторе без подсветки.
lindil
09.11.2018 20:27+4Любая ide предложит вам посмотреть на структуру класса, на сколько бы тысяч строк его не растянули. А тот же хедер может быть засорен так что вам его придется часами разглядывать. Но ide вам и тут поможет.
thauquoo
10.11.2018 04:15Проблема современных IDE в том, что они медленные. И чем современнее, тем медленнее. На JAVA, на Electron, на Atom, на .Net, и т.д. Я пытался несколько раз перейти на IDE ради удобства, но лаги достали. Не то, чтобы интерфейс зависал на несколько секунд, но видимость, когда нажал на кнопку или навёл курсор мыши, щёлкнул, и действие происходит не мгновенно — вот это раздражало очень.
До сих пор использую несложные текстовые редакторы с подсветкой синтаксиса. Они работают молниеносно. Как и должен работать оффлайновый софт в 2018 году на современном оборудовании.
unC0Rr
09.11.2018 22:51+2Не стоит спешить обощать. В паскале, к примеру, не нужно проглядывать весь файл. Что идёт на экспорт из модуля, находится вверху в своём блоке, что не идёт, то в отдельном блоке.
mayorovp
09.11.2018 23:07+2Это работает только без шаблонов. А с шаблонами вся реализация, как правило, оказывается точно так же вперемешку с объявлениями.
DistortNeo
10.11.2018 02:11Можно делать forward-declaration-ы, но тогда замучаешься искать реализацию.
DistortNeo
10.11.2018 02:10Намного удобнее глянуть в хедер и увидеть что это вообще за класс такой, какой у него интерфейс, какие приватные функции есть, члены класса и вот это вот все
Ровно до тех пор, пока вы не используете шаблоны и, как следствие, header-only библиотеки. Ковыряться в исходниках того же boost без докумментации — то ещё удовольствие.
saipr
09.11.2018 20:20+1В недрах Bell Labs Деннис Ритчи и Кен Томсон решают перенести созданную ими ОС UNIX, а заодно и любимую компьютерную игру на другой компьютер
В Советском Союзе тоже внедряли ОС UNIX под брендом МОС ЕС (Мобильная Операционная Система Единой Серии) как на менфреймах так и персоналках:
А если говорить про язык Си, то жутко вспомнить с каким боем в 80-е году приходилось его внедрять, пробиваясь через полчища любителей PL/1/
pchelintsev_an
09.11.2018 21:47+1В своё время я долго объяснял программисту PL/1, почему индексация в массивах в Си начинается с нуля. Потом были полчища любителей Паскаля.
domix32
09.11.2018 21:23+2Пользуетесь статическим анализом? Какими компиляторами собираете? Смотрите ли в сторону Rust
perfect_genius
09.11.2018 21:38Но почему нельзя писать «Си»? Просто «С» разве не путает?
qw1
09.11.2018 22:46+3К сожалению, автор статьи пишет неправильно — «С», и это, конечно, путает. Если писать правильно — «C», проблемы бы не было.
Yuuri
09.11.2018 23:28+1> А зачем комбинировать несколько языков, если можно обойтись одним?
Действительно, зачем иметь дома отдельно нож, ножницы, пилочку и пинцет, если всё это можно заменить одним швейцарским?
KevlarBeaver
Такими крестиками «на боку» вместо глаз обозначаются мёртвые люди. Но, учитывая, что она улыбается… я даже боюсь предположить, что с ней ))