LINUX.ORG.RU
ФорумTalks

Опубликовано руководство по выбору языков программирования для новых проектов

 , ,


3

1

Собственно, сабж: https://earthly.dev/blog/brown-green-language/ .

Для Ъ в 2-х словах:

  • Для новых проектов рекомендуются такие языки как
    • Go
    • Rust
    • TypeScript
    • Kotlin
    • Julia
    • Dart
    • Scala
    • Haskell
  • Для новых проектов НЕ рекомендуются такие языки как
    • Java
    • C
    • C++
    • C#
    • Python
    • PHP
    • JavaScript
    • Swift
    • Perl
    • Ruby
    • Assembly
    • R
    • Objective-C
    • SQL
★★★★★

Давайте в пригодные для освоения добавим Яву и Питон, они же тормозные, но при этом имеют низкий порог вхождения. И по этому принципу всё остальное. Если тормозит, жрёт память, базируется на фреймворках JS - в рекомендованные. Если хоро и быстро работает - в нерекомендованные.

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от bl00dy

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

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

saahriktu ★★★★★ ()

Swift

Кек, и на чём тогда пилить под яблочную продукцию, если он отменил даже Objective-C? На Dart под Flutter?)))

johnnyslow ()
Ответ на: комментарий от saahriktu

прекрати нести свою чушь про «рекомендует». Открой словарь, да посмотри, как likely переводится. Тебе уже несколько человек сказало, что ты все переврал

bl00dy ()

Автор может отруководить себе за щеку

Шкала и хацкель для новых проектов, юморист

upcFrost ★★★★★ ()
Ответ на: комментарий от bl00dy

«Вы вероятно захотите выбрать» - это и есть рекомендация.

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

saahriktu ★★★★★ ()

В 2021 году «новых проектов с чистого листа» уже не бывает. Язык определяют уже написанные фреймворки или платформы, которые наиболее подходят для задачи.

snizovtsev ★★★★ ()
Ответ на: комментарий от saahriktu

Литератор, %#%@, нашелся! «A language that you are more likely to use» = «Язык, который вам вероятнее придется использовать». Английский выучи

bl00dy ()
Ответ на: комментарий от bl00dy

Так при таком переводе это ещё более строго чем просто рекомендация - больше похоже на констатирование фактов.

«Вам придётся, и вы никуда от этого не денетесь.»

«Рекомендация» же предполагает, что у читателя есть выбор. Что он прочитает статью, закроет её и спокойно про неё забудет.

«Вам придётся» исключает такой вариант. Тому, кому придётся, придётся в обязательном порядке.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

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

bl00dy ()
Ответ на: комментарий от bl00dy

Какие факты если на тех же Java и Python'е вполне продолжают создаваться новые проекты и вполне себе ещё долго будут создаваться? У автора же они в другом списке.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

то есть у тебя и с русским проблемы: слово «вероятнее» тебе ни о чем не говорит? Вероятнее, если надо заниматься поддержкой существующего кода, будет использован язык из коричневого списка, который уже был популярен 5 лет назад. Вероятнее, если проект новый, он будет создан на новом модном языке из зеленого списка.

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

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

bl00dy ()
Ответ на: комментарий от bl00dy

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

А в «зелёный» список автор статьи включил языки, которые не вчера появились. Тому же Go уже больше чем 10 лет и на нём уже много всего понаписали. А Haskell так вообще существует с 1990-го года, имеет своё сообщество и кучу библиотек. На Haskell'е написаны те же pandoc и shellcheck. Rust'у тоже уже лет 10.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

Переводи со словарем по буквам

The top 20 programming languages on their list as of July 2016 are Java, C, C++, Python, C#, PHP, JavaScript, VB.NET, Perl, Assembly, Ruby, Pascal, Swift, Objective-C, MATLAB, R, SQL, COBOL, and Groovy. We can use this as our list of languages more likely to be used in maintenance work. Let’s call them brown languages. Languages not in the top 20 in 2016 are more likely to be used in new projects. We will refer to these as green languages.

bl00dy ()
Ответ на: комментарий от ixrws

Он предлагает для новой реализации кодека использовать Rust, а не C/C++ с asm вставками? Может быть Rust ещё впихнём куда-нибудь в микроконтроллеры для управления дроссельными заслонками, а там тоже знаете ли нового кода дохрена пишется.

Тут-то я как раз поддерживаю, Раст умеет делать всё то же, но на порядки удобнее. Кодеки и прошивки на нём уже давно пишут, и с каждым годом будут писать всё больше. Ассемблерные вставки ты и в Раст можешь делать, ничего не мешает.

meliafaro ★★★★★ ()
Ответ на: комментарий от bl00dy

Так и что меняет то, что они не были раньше в топе? Всё равно на них много что уже понаписано.

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

При таком понимании вообще теряется смысл статьи.

saahriktu ★★★★★ ()

Обдолбаются своими смузями, а потом стыда на все Интернеты.

BceM_IIpuBeT ★★★☆☆ ()
Ответ на: комментарий от ixrws

Не использовать SQL для новых проектов? Да это детский сад какой-то.

Использовать вместо него конструкторы запросов. Прямое использование SQL опасно и непортируемо для разных СУБД.

X512 ★★ ()
Ответ на: комментарий от X512

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

Точно также есть используют ту же mongodb не переживая, что есть и другие базы с другим API.

А конструкторы запросов - это удел малых и средних проектов. Или просто морды к большому объёму бизнеслогики в базе данных.

ixrws ★★★ ()
Ответ на: комментарий от ixrws

Да потому, что с ассемблерными ставками и сплошным unsafe rust превращается, превращается rust - в C.

Это было бы так, если бы весь (Или почти весь) код был одной простынёй на ассемблере. Но ведь это не так, верно? Вот например я взял код от не no-name шараги https://github.com/xiph/rav1e, 60% - NASM, 30% - Rust. Весь код не смотрел, но то что посмотрел - сотни строк без единого unsafe. Почему бы и да?

Но самое главное - какой в этом смысл, что это даст, не уж-то в коде, где зачастую даже динамическое выделение памяти отсутствует, rust чем-то поможет?

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

Ну вот он поможет усложнением сборки проекта, это да.

Разве что если какая-то платформа не поддерживается.

anonymous-angler ()
Ответ на: комментарий от bl00dy

Пришлось долистать первую страницу почти до конца, чтобы обнаружить первый комментарий человека, который:

a) Осилил прочитать статью.

б) Понял то, что он прочитал.

В общем ЛОР, какой он есть. Тебе спасибо за то, что это не пришлось писать мне, а ТС обратно в школy. А то уже под сорокетник, а до сих пор не может сделать краткий пересказ поста в бложике на английском.

ptarh ★★★★★ ()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от ptarh

При таком понимании статья теряет смысл. Уже выше написано.

Если автор пытается играть в Вангу и угадывать с какими языками столкнутся читатели его статьи, то это не имеет никакого смысла. Всё равно не угадает, а люди и так знают с какими языками они сталкиваются. Или узнают когда столкнутся. При этом Ванга из него так себе (уже выше комментировал).

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

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

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

ptarh ★★★★★ ()
Ответ на: комментарий от saahriktu

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

гражданин просто издевается

kott ★★★★★ ()
Ответ на: комментарий от saahriktu

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

kott ★★★★★ ()
Ответ на: комментарий от ptarh

Так, а для чего он это пишет? Для чего он делит языки на две группы, одну из которых связывает с новыми проектами, а другую - с поддержкой уже существующих проектов?

Если прочитать дословно, как это вы тут рекомендуете, то получается чушь (как будто бы констатирование фактов, хотя для конкретных читателей это совсем не факты). А если при чтении получается чушь, то это не значит что автор дурак. Это значит, что этот текст не надо читать дословно. Особенно тем, кто не читают на языке текста с рождения. И надо внимательнее вчитаться в ключевые слова. Например, эти:

There are many nuances that a simple green / brown split misses - I expect that more green-field projects start with Swift than with Objective-C, but it does seem sufficient to capture what we need.

Т.е., на минуточку, после разделения языков программирования на две группы автор добавляет, что по его ожиданиям новые проекты будут создаваться и на Swift'е и на Objective-C. Однако, он эти языки включил в другую группу, которая «A language that you are more likely to use in existing software maintenance», не «A language that you are more likely to use in a new project».

Следовательно, исходя из того, что автор сам себе не противоречит, такой перевод как «вам придётся» следует отклонить.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

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

С этим списком можно соглашаться, можно не соглашаться (у меня, например, вопросы к SQL – по мне так он ужасен как сам по себе, так и тулзы для него и feedback loop при работе с ним), но этот краткий пересказ может являться базой для дальнейшей дискуссии. Тот бред сивой кобылы, который ты написал в посте по себе никакого интереса не представляет, так как это не то, о чем говорится в статье по ссылке. Поэтому мы теперь обсуждаем пробелы в твоем школьном образовании, вместо того, чтобы обсуждать материал статьи. Так что хватит нести здесь пургу и засядь лучше за учебник.

ptarh ★★★★★ ()

Для новых проектов НЕ рекомендуются такие языки как

Python

И какой язык из тех, что «рекомендуются», следует выбрать вместо питона?

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от slackwarrior

И какой язык из тех, что «рекомендуются», следует выбрать вместо питона?

Основание? «Ящитаю!» автора? Ну и пошел он лесом на хутор бабочек ловить.

оригинальный автор не рекомендует и толком ничего не щитает, тут рецидив опять у ТС-а

kott ★★★★★ ()
Ответ на: комментарий от ptarh

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

kott ★★★★★ ()
Последнее исправление: kott (всего исправлений: 1)
Ответ на: комментарий от ptarh

Подобную мысль можно найти всего в одном абзаце. Если этот абзац посередине статьи посчитать ключевым, то получается, что группа «A language that you are more likely to use in a new project» им выделена не как констатация того факта, что юзеру придётся начинать новый проект на одном из этих языков, а как предположение того, что программист уже ненавидит наиболее популярные языки, и, следовательно, захочет создать новый проект на менее популярном языке программирования. А «зелёный список» в таком случае - это список наименее популярных языков программирования, которые программист не ненавидит именно по этой причине.

Но в чём тогда смысл статьи в таком виде, как она есть? Тогда следовало бы просто составить список наименее популярных языков программирования. И он получился бы совсем другим (те же Go, Rust и Haskell не такие уж и экзотические).

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

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Если этот абзац посередине статьи посчитать ключевым

У окружающих же нет для этого никаких причин. Люди, закончившие школу знают, что ключевой абзац в тексте, aka. summary, находится в конце текста.

Но в чём тогда смысл статьи в таком виде, как она есть? Тогда следовало бы просто составить список наименее популярных языков программирования.

Об этом написано в конце текста просто и понятно:

What I came away with instead was the idea of a programming language life cycle: loved programming languages get used a lot, which leads to code maintenance, which causes people to dislike them, which leads to people looking for greener pastures and trying out a newer language. Popular frameworks probably follow this lifecycle as well.

P.S.: Я не могу понять, то ли ты тут шлангуешь, то ли и вправду полоумный. В любом случае, язабан.

ptarh ★★★★★ ()
Ответ на: комментарий от ptarh

Это не самый последний абзац текста и не «Summary». Это первый абзац отдельной главы под названием «The Lifecycle of Programming Language Hype».

И там автор чёрным по белому пишет: «I originally started digging into these numbers to...». «originally». Т.е. он именно обосновывает что его побудило начать писать эту статью. Это не описание того, что получилось.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

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

ptarh ★★★★★ ()
Ответ на: комментарий от ptarh

Так если его изначальная идея не имеет отношения к содержанию его статьи, то зачем ей (изначальной идеей) объяснять содержимое его статьи? О том и речь.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

Эта история не имеет никакого отношения к тезисам статьи, а лишь к истории ее создания. Не знаю, что тут можно не понять.

ptarh ★★★★★ ()
Ответ на: комментарий от ptarh

Так значит, и утверждения статьи надо понимать не в контексте истории создания статьи. А то вы мне тут утверждаете, что надо переводить «вам придётся» именно потому, что у автора такой абзац, описывающий историю создания статьи.

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

Так значит, и утверждения статьи надо понимать не в контексте истории создания статьи. А то вы мне тут утверждаете, что надо переводить «вам придётся» именно потому, что у автора такой абзац, описывающий историю создания статьи.

Ты не то что на английском тексты не понимаешь, но даже и на родном русском. Еще раз: в твоем вбросе нет ничего, что утверждалось бы в тексте, на который ты ссылаешься. Там нет ничего о «Для новых проектов НЕ рекомендуются такие языки» ровно как и о «Для новых проектов НЕ рекомендуются такие языки». Более того, этого нет даже в опросе, на который ссылается статья автора и который база для его размышлений. Это или тупейший вброс, или ты совершенно не в состоянии прочитать текст и понять, о чем он. Хватит здесь шланговать.

ptarh ★★★★★ ()
Ответ на: комментарий от ptarh

«На колу мочало, начинай с начала...».

Опубликовано руководство по выбору языков программирования для новых проектов (комментарий)

Т.е. автор ничего не угадывает и не констатирует. Значит, что? Для чего он приводит эти списки читателям своей статьи? Для чего он описывает все шаги преобразований списков языков?

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

saahriktu ★★★★★ ()
Ответ на: комментарий от ixrws

Да ладно, кресты невкусные потому что старые, и не из-за самого факта, а просто индусы и зумерки успели своего говна натащить

TooPar ()
Ответ на: комментарий от saahriktu

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

ptarh ★★★★★ ()
Последнее исправление: ptarh (всего исправлений: 1)
Ответ на: комментарий от ptarh

тезис автора

Вы его взяли из того абзаца, где он писал «I originally started digging into these numbers to...». А Вы уже согласились с тем, что

Эта история не имеет никакого отношения к тезисам статьи

Поэтому утверждения статьи и нужно разбирать отдельно от этой истории с этим тезисом.

saahriktu ★★★★★ ()

C/C++/Assembly в массы. Остальные ЯП это продукт фантазий и лени смузихлёбов.

Hg194 ()

А где elixir? Мне нравиться его отказоустойчивость, распределённость. Убитые процессы легко самовосстанавливаются.

superteremok ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)