Статьи

IDE делят

Via Keith : разделение среды IDE, поднимающее некоторые интересные моменты в отношении разработчиков, ориентированных на язык, и разработчиков, ориентированных на инструменты .

Хотя разделение, вероятно, не так однозначно в действительности, как указывает этот ответ , это поучительное упрощение.

Лично я бы сказал, что я ориентирован на язык и часто озадачен альтернативной точкой зрения. Мое сопротивление «унифицированным IDE» (за исключением EMACS / VIM) основано, прежде всего, на желании получить максимально «сырой» доступ к исходному коду, насколько это возможно, а не на том, что я бы назвал «тупым» представлением, которое заставляет меня зависеть от инструмент (и поставщик).

Я также предпочел бы следить за тем, какие изменения в функциональности языка по сравнению с изменениями в функциях / интерфейсе инструмента (которые, как правило, более частые и разочаровывающие, IMO).

Вот почему я нашел аргументы Оливера Стила поучительными, потому что я согласен с такими вещами;

Вот пример с веб-сайта Apache Merlin

ReferenceDescriptor reference = new ReferenceDescriptor( Widget.class.getName() ); ComponentModel model = (ComponentModel) m_model.getModel( reference ); model.commission(); Widget widget = (Widget) model.resolve();

ReferenceDescriptor reference = new ReferenceDescriptor( Widget.class.getName() ); ComponentModel model = (ComponentModel) m_model.getModel( reference ); model.commission(); Widget widget = (Widget) model.resolve();

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

… За исключением того, что разработчик, ориентированный на инструмент, вероятно, не будет печатать, или, по крайней мере, немного, такие вещи, как автозаполнение / мастера / перетаскивание / генерация кода и т. Д., Сэкономив усилие.

Оливер намекает (моя интерпретация), не заявляя, что это аспект статического и динамического разделения языка.

Для меня это проливает много света на то, почему у нас есть программисты на Perl / Python / PHP / Ruby (и т. Д.) С одной стороны (ориентированные на язык) и C ++ / Java / C # с другой (ориентированные на инструмент) и оба группы думают, что другой — чокнутый.

Поэтому, когда программист C ++ / Java / C # говорит, что их платформа более удобна в обслуживании, чем динамический язык «X», возможно, на самом деле они обращаются к лучшим инструментам. И то, что они не видят, это то, что динамическое «X» не требует инструментов в одинаковой степени, чтобы быть одинаково поддерживаемым (разработчиком, ориентированным на язык).

Может быть, способ определить мышление разработчиков — спросить: «Что вы видите в будущем программирования?». Те, кто склоняется к «программированию с помощью изображений / визуального моделирования / редактирования исходного кода, умрут», находятся в инструментальном лагере, в то время как те, которые предлагают «более выразительную / более мощную / более близкую к естественному языку / интуитивному синтаксису», находятся в лагере языков.

И я не могу избежать своего мышления: думаю, что древние египтяне могли бы сказать что-нибудь полезное о долговечности иероглифов …