LINUX.ORG.RU

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

 


0

6

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

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

★★★★★

Вангую, Perl5 годен

Deleted
()

Т.е. язык оказался вполне годный для крупномасштабной разработки.

Крутой вывод. Есть 1 разработка, все - годен.

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

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

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

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

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

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

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

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

При таких критериях все языки годные. Везде есть 1 крупная разработка точно.

umren ★★★★★
()

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

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

Ладно, спасибо за ваши мнения. Возможно, плохо сформулировал вопрос.

den73 ★★★★★
() автор топика

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

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

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

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

То, насколько затратно этот большой проект поддерживать и развивать.

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

tailgunner ★★★★★
()

Вангую языки с могучими модулями и могучей системой типов, например Ocaml.

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

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

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

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

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

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

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

Weres ★★★
()

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

как звать?

Rastafarra ★★★★
()

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

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

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

nikolnik ★★★
()

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

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

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

Под эти критерии попадают практически все немаргинальные языки программирования — от смоллтока до джавы.

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

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

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

Кресты мимо.

Pavval ★★★★★
()

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

hippi90 ★★★★★
()

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

Зависит от проекта, иногда мат очень эффективен.

Hater ★★
()

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

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

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

Мальчик, ты дурак?

anonymous
()

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
()
Ответ на: комментарий от nikolnik

возможность вручную перекладывать байтики важнее

Лиспер в треде

RazrFalcon ★★★★★
()
Ответ на: комментарий от 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 ★★★★★
()
Ответ на: комментарий от dave

Тоже хотел про Spark написать. Jvm и их экосистема более чем достаточна для написания подобных штук. Сомневаюсь, что ТС на что-то большее замахнулся.

Deleted
()

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

Iron_Bug ★★★★★
()

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

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

outtaspace ★★★
()

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

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

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

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

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

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

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

antares0 ★★★★
()

языки, годные для крупномасштабных разработок
концепции, годные для programming-in-the-large
проекты, годные для крупномасштабных разработок
команды, годные для крупномасштабных разработок
клиенты, годные дабы проплатить крупномасштабные разработки
...
ну, ты понял. пока не попробуешь — не узнаешь.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.