LINUX.ORG.RU

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

 


0

6

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

Не предлагайте индекс Tiobe :) Про него я уже знаю, и он никак не говорит о масштабе проектов.

★★★★
Ответ на: комментарий от tailgunner

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

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

Не странный вопрос. Это далеко не так уж очевидно.

Очень странный. Очевидно.

Не все афишируют размер своих проектов и на чём они написаны

Тех, кто афиширует, вполне достаточно.

tailgunner ★★★★★ ()

На любом языке можно написать большую программу. Другой вопрос, сколько боли придётся вытерпеть при написании и поддержке продукта. Сам факт наличия большого продукта не говорит о том, что язык годен.

Weres ★★★ ()

php, c, python, js, html, yaml, markdown, c++, erlang, elisp, bash ... словом все те языки, широко представленные на github, в окружениях, имеющие сообщество, комьюнити ...

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

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

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

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

Оценивать годность можно и без публикации расходов. Это могут сделать опытные программисты, поработавшие с крупным проектом на языке А. И сравнившие свои ощущения с поддержкой продукта на языке Б.

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

По предлагаемым тобой критериям вообще вообще можно сделать только сравнительные выводы вроде «язык А больше подходит для больших разработок, чем язык Б». При том, что А может тоже не подходить %)

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

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

Weres ★★★ ()

какие языки годны и используются для крупных разработок

На мой взгляд:

1. Язык должен быть синтаксически и семантически достаточно простым, чтобы не было «без ста грамм не разберешься» 2. На этапе компиляции должны отлавливаться все неалгоритмические ошибки (опечатки, преобразование типов, пропущенные аргументы и т.п.) 3. Язык должен должен нормально рефакториться. 4. Должна быть полноценная среда разработки, с интеллисенсом, рефакторингом и прочими ништяками. 5. Язык должен нормально отлаживаться. 6. Сам код должен быть предсказуемый, причем, что сам язык должен ограничивать возможность создавать непредсказуемую хрень.

nikolnik ★★ ()

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

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

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

1. Язык должен быть синтаксически и семантически достаточно простым, чтобы не было «без ста грамм не разберешься»

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

Кресты мимо.

Pavval ★★★★★ ()

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

hippi90 ★★ ()

А что такое крупный проект? Знаю несколько очень крупных САПР с массой плагинов и расширений - написано всё на Qt/C++.

Делаем вывод Qt/C++ подходит для крупных проектов.

I-Love-Microsoft ★★★★★ ()

Within C++, there is a much smaller and cleaner language struggling to get out

Вот это касается почти каждого языка. Компании должны создавать строгий стиль кода или брать готовый набор правил. Обязателен peer-review. «Единственные эксперты» по какому-то коду должны быстро обеспечивать такой же уровень экспертизы в этих сферах среди своих коллег. Вот и все, почти любой вменяемый язык готов к «крупномасштабной» разработке, разница в технических нюансах

vertexua ★★☆☆☆ ()
Ответ на: комментарий от I-Love-Microsoft

C++ пригоден, это очевидно. Я не ожидал, что Скала пригодна. Мне было сказано, что Идея может ходить по коду Скалы - вот что было для меня крупной неожиданностью. Моё мнение было в том, что все эти ФП-фишечки легко способны превратить проект в помойку.

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

Ессно, меня интересует не те, про которые все знают (C/C++/C#/Java), а вот такие, типа Скалы. И, собственно, не ваши частные мнения и примеры (хотя примеры ценны), но и какие-нибудь обзоры.

den73 ★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)

С удивлением узнал, что на Scala существует проект в миллион строк кода (сделано в России).

Какова предметная область этого проекта? :-)

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

Разработок в какой области? :-)

Не предлагайте индекс Tiobe :)

Предлагаю Common Lisp :-) Ведь в нём есть макросы, благодаря которым можно создавать DSL для конкретной задачи и писать её на этом DSL :-) Или что-то здесь не так, а? :-)

anonymous ()
Ответ на: комментарий от I-Love-Microsoft

Знаю несколько очень крупных САПР с массой плагинов и расширений - написано всё на Qt/C++.

Вот смотрю я на багтрекер quartus и понимаю, что кресты не готовы. Еще лет 10, и может на них можно будет писать без слез и костылей. Вся надежда на раст.

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

ФП-фишечки легко способны превратить проект в помойку.

Вообще-то наоборот: модули, функторы (функции над модулями), алгебраические типы и паттрн матчинг на порядок увеличивают читаемость и выразительность кода. Не зря некоторые монады утащили аж в кресты и джаву, ибо очень оно удобно, использовать какой-нибудь Optional.

Другое дело, что в скале нет нормальной функциональщины.

https://www.youtube.com/watch?v=hzf3hTUKk8U

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

Я не ожидал, что Скала пригодна.

Есть две вещи, которые очень выделяют Scala для этого дела:

1) Apache Spark для Big Data - написанная на Scala она уделала всех остальных, написанных до этого на Java;

2) Akka как реализация акторов, которую, кстати, использует Spark.

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

dave ★★★★★ ()

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

Iron_Bug ★★ ()

Scala существует проект в миллион строк кода

Можно написать на Perl5 миллион строк кода (как минимум 1 такой проект знаю). Если миллион строк это основной критерий, то Perl5 вполне годится для крупномасштабных разработок.

outtaspace ★★ ()

Scala, akka, slick достойные кирпичики для построения приложений. Есть свои подводные камни, но научились их обходить, хотя синяков на начальном этапе было очень много.

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

Я не ожидал, что Скала пригодна.
Моё мнение было в том, что все эти ФП-фишечки легко способны превратить проект в помойку.

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

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

Не все афишируют размер своих проектов и на чём они написаны.

Но многие озвучивают желаемую направленость нанимаемых спецов. Скала стала пригодной когда >>1 компании стали искать под нее людей. А пролог перестал быть таковым, хотя было время.

antares0 ★★★ ()