Сергей, лучше-бы это был Pascal. Там был хотя-бы учебный смысл заложен.
Python в ВУЗах это переворачивание причины и следствия. Скорее всего его стали притаскивать аспиранты которые связаны в data-science и давать его как основу для обучения алгоритмов. А Python совершенно не пригоден для обучения программированию потому как не превносит дисциплину типов данных. А типы - это вообще адская основа в программировании.
Вот те кто ничему не обучились и приходят сюда в QNA с парсингом сайтов или с телеграм ботами. Почитайте уровень их вопросов. Это - дно. Ниже некуда. И половина вопросов связана с тем что пишушие не знают какие типы они используют.
Сергей, я помню судебную тяжбу между Oracle и Google. Почти десяток лет. Кажется Оракл не выиграл но за это время Google успел разработать и внедрить другую виртуальную машину (Dalvik) на замену JVM. Не знаю что они там меняли. Но кросс-компиллятор dex2jar который по идее конвертит в JVM, работает с такой скоростью что будто-бы просто меняет заголовки. Я не смотрел внутрь но крайне интересно чем же такая скорость обусловлена. Это точно не цикл компилляции.
Сергей, Python создавал какой-то обкуренный чудик.
Он умудрился операции со списками сделать
- удаление через keyword language,
- расчет длины через функцию
- и вставку как-то вообще через третий ортогональный подход
Ни в одном языке в мире нет такого позора дизайна. Я вообще никогда не понимал
и не понимаю интереса людей к Python. Широкое распространиение - это какой-то
когнитивный парадокс наподобие популярности MS-DOS в свое время. Тоже сложно
объяснить. И всем известный сплит Python на 2 исторические ветки тоже весьма доставляет.
Сергей, Scala - научный смысл. Создавал его профессор Одерский. Который участвовал сначала в разработке дженериков в Java. Понял что ему не хватает свободы. И стал делать свой Java с улучшенными механиками типов. Он кстати его уже переделал кардинально. Сделал форк. Есть 2 ветки. Scala 2.xx и Scala 3.xx в которых развитие пошло разными путями и только сотня людей в мире понимают реальные причины такого сплита.
Между двумя скалами нет совместимости. По крайней мере бигдата (Spark) ездит на старой версии. И поднять ее до тройки пока принципиально не возможно. Не рабоатет. А новая версия манит более строгими типами и быстрой компилляцией и всякими tasty-метаданными в бинарниках для лучшей рефлексии.
Есть какие-то языковые фичи которые просто выпиливались. Например в старой скале были ленивые списки под названием Stream[_] а потом их почему-то переименовали в LazyList[_] вобщем это были breaking changes.
Ну тут как-бы да. Я даже соглашусь что это - сильная причина чтобы создавать нечто своё. Но это близко к корп-стандартам. Типа - "мы не они". Или мы - лучше. Или мы мажем бутерброд маслом сверху а они - снизу. Или яйцо разбиаем с острого кончика. Политика и политология.
Василий Банников, совершенно верно. Все современные языки - суть "мимо". По моей классификации и Rust - мимо. Хотя он просто пытается быть таким улучшенным генетическим клоном С++.
А вот Go-Lang - это уже страйк. Попадание в корпорацию. Вот специально Google и продвигает. Работает терпимо быстро. Быстрее чем Python. Но медленнее чем С++. Строго типизирован. Легко разрабатывать. Любой школьник осваивает язык за 14 дней. Микро-сервисы. Автоматизация. Некоторые девопс тулчейны.
Какую область должен занять гипотетический ЯП от яндекса и зачем он вообще яндексу, если они все там фанатики C++?
Я вижу два возможных смысла в создании языков. Первый смысл - научная работа. Доказательство
там приципиальной возможности что-то сделать (POC). Языки такого семейства обычно интересны
только самому создателю и может десятку фриков которые заняты академическими спорами.
И второй смысл - корпоративный стандарт и захват аудитории. C#/.Net - самый яркий и сильный пример.
Может вы знаете третий сегмент? Я не смог найти. Ну по крайней мере все прочие причины мне казались
незначительными.
Сергей, я не против фигурных скобочек. Я вот пытался писать на Scala-3 в формате Python. Тоесть с отступами. Возникла проблема. Очень плохо делать рефакторинг. Либо я - криворукий. Либо нужена какая-то IDE но простой перенос code-block напрочь ломает логику. Постепенно пришел к практике. Пишу код в Scala в bracers-style. Потом когда пришло время релиза - я форматирую под indent-style. И коммичу.
Я-бы выбирал язык максимально отдаленный в этом пространстве фичей от С++.
Потому что в противном случае вы просто выбираете брата-близнеца С++
где просто скобочки-стрелочки в исходнике стоят в других местах. И функции по другому зовуться.
Вроде как язык сменили - но те-же яйца только в профиль. И зачем оно?
Они сделали ту-же самую фигню что и в Scala. Явно указывают интерфейс Comparable. Это на самом деле не плохо. Вроде как контракт. Но вот может ли компиллятор сам вывести это свойство шаблонного типа просто из операции сравнения. В Haskell такое можно.
Я-бы хотел найти матрицу сравнения Carbon с Rust/Nim/Zig. Особенно интересует
управление памятью, обработка исключений.... ну и конешно-же конечно-же способность
делать системные вызовы и вызовы native-кода.
Список я взял наугад из языков последнего десятилетия и строгой типизации.
Вообще не понимаю при чем здесь SSD. Современный веб-портал с нагрузкой - это grid из приложений. Это и сетка nginx. Сервера приложений. БД. И хранилище для файлов. И все это распределяется по разным bare-metal устройствам.
В этой статье не говоритться о самом главном. О Memory safety. А ведь это цели и задачи которые ставились перед Rust. Господин который написал эту статью просто забалтывал вопросы и говорил о своём.
Обсуждать Performance issues не особо интересно например для меня. Мы живем в век передозировки мегафлопов. Сегодня перформанса хватает. Не хватает инфо-безопасности. И с этой точки зрения статья мне не очень интересна.
В чем смысл например обсуждать переполнение разрядной сетки при возведении в квадрат? Мне неясно как это влияет на инфо-безопасность. Может кто-то приведет пример атаки?
Мне кажется важнее читать отчет АНБ США о положении безопасности memory и о кибер-угрозах. И еще важнее - рекомендации которые идут после. Там нет воды. Там - главная суть.