это как ассемблер и питон сравнивать по строкам кода.
Вот по количествам строк кода Rust и С++ как раз не сильно отличаются, я смотрел исходники различных растовых библиотек, о краткости и лаконичности там и говорить не приходится.
Им обоим до Kotlin, например, далеко.
Простой аналог
без паттерн матчинга это бессмысленно, и не так уж он нужен, множество мейнстримовых языков без него обходятся.
А в Rust зато ООП нет.
на С++ уже займет под 500 строк кода.
да вы если поднатужитесь, то и на 5000 напишете, я уверен )
на С++ придется городить иерархию классов-интерфейсов
На шаблонах и union можно сделать, и вообще много вариантов.
Во первых, фич в C++ гораздо меньше чем, например, в Scala. Это по поводу неуемного добавления фич.
Во вторых, синтаксис C++ проще вырвиглазного синтаксиса Rust, и становиться только проще со временем начиная с 11 стандарта (всякие auto, новый for, ламбды и.т.д.). Вы просто путаете синтаксис и возможность выстрелить себе в ногу. Да, в Rust гораздо сложнее это сделать, но он и менее гибок.
В третьих вы пишете ерунду по поводу 99% ПО, ибо все мало мальски серьезные десктопные приложения пишутся на C++. Тулзы, браузеры, 3д софт, графические редакторы, видеоредакторы, музыкальные студии, игры и.т.д. Даже тот же Firefox состоит лишь на 9% из Rust, по моему это фиаско для языка, стабильная версия которого вышла в 2015 году.
И на мобилках все серьезные игрушки понятное дело, кроссплатформенные и во многих случаях написаны на C++. Так что язык не маргинализировался, он остается на своем месте, и будет всегда там оставаться. Просто разрослись веб и мобильные сегменты, до невероятных размеров, а C++ прекрасно чувствует себя в своей нише.
Бреслав как-то говорил что он не понимает многих возможностей Scala, скорее всего, он не очень любит и не использует на полную катушку ФП. Как и другие в его команде, наверно. Но они очень субъективны, когда говорят что это «Мало кому нужно». Они говорят про себя, про свой уровень. В Scala и Rust есть расширенный паттерн матчинг с деструктуризацией, уж наверно люди что его включили в эти языки, не худшие специалисты чем Бреслав с командой. Ну а Kotlin язык приятный, но выглядит как калька со Scala, во многом урезанная, ну и многое добавлено, конечно.
Похоже на тонкий троллинг.
Автор утверждает что у него есть сертификаты Microsoft (и не один).
Это как минимум означает, что человек умеет работать с информацией (в том числе разбирается, где нужное — а где лишнее),
и умеет искать информацию.
Он говорит что «прочитав гору статей и просмотрев кучу видео «Как стать Java программистом»», он не смог разобраться более продвинутой книге
«Философия Java», мол, она не для новичков.
Парадокс в том, что после усвоения «горы статей» и «кучи видео», (и, разумеется практики, не зря же он себе IDE поставил), он перестал бы быть новичком.
Если конечно, голова на плечах есть, а она есть, если у него есть сертификаты MCP, MCSA и VCP.
Так что что-то не сходится.
По сравнению с чем «очень зажористые»? Много частиц — это сколько? Сто миллионов? А если билбордами (спрайтами) делать, а не трехмерными объектами? Как раз частицы будут гораздо быстрее работать, чем если реализовывать все это через скрипты.
Всегда удивляюсь, когда говорят о строгости и лаконичности питона.
Может, я чего не понимаю?
Вот пример использования Apache Spark, на Python и Scala:
Python:
text_file = sc.textFile("hdfs://...")
counts = text_file.flatMap(lambda line: line.split(" ")) \
.map(lambda word: (word, 1)) \
.reduceByKey(lambda a, b: a + b)
counts.saveAsTextFile("hdfs://...")
Scala:
val textFile = sc.textFile("hdfs://...")
val counts = textFile.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://...")
Что лаконичней?
В Python не устали писать «lambda» каждый раз, и ставить "\" в конце строки? Зачем это?
В scala лишнее слово Val перед переменной означает ее объявление и также то, что ее значение не может измениться в будущем.
(Издержки статической типизации, но это позволяет ускорить выполнение программ и предупреждать ошибки, по сравнению с питоном)
Далее вопросы к синтаксису:
for key in d:
d[key].sort()
В чем тайный смысл двоеточия, если по идее, должно быть достаточно отступов для формирования блоков кода?
Тоже и с оператором IF.
(Кто нибудь может сказать, что это для того, что бы писать операторы в той же строке, но часто вы в питоне такое видели? )
Далее идут классы.
class Some:
def __init__(self, id):
self.id=id
Мы что, на C++ пишем? Зачем двойные подчеркивания в языке высокого уровня?
«def init» никак не прошло бы? Давайте тогда и класс через "__class" объявлять, почему так не сделали?
Ну и напоследок о скорости питона.
Он до 50 раз медленнее scala.
Он значительно медленнее PHP, Javascript. Epic fail.
Скорость выполнения задач обспечивается библиотеками, написаными на C.
И не говорите о PyPy — это не стандатный питон.
Выводы:
Крайне медленный и весьма многословный язык, малоэстетичный.
Если его позиции пошатнутся, всем это только пойдет на пользу. (ИМХО, разумеется)
На самом деле, не всегда.
Хороший компилятор С++ (Visual C, GCC) обычно генерирует код лучше, чем если писать вручную.
Плюс может использовать SSE/AVX инструкции.
И написана песня не в 1984 году )
Каким образом модель может давать осознание?
Неужели программа играющая в шахматы, осознает доску?
Так вроде toLocal8Bit создает в куче новый QByteArray, почему он должен уничтожаться?
break / continue : о, да!
Особенно с учетом мультипарадигменности языка.
Хоть перечисления в третьей скале добавили. Но похоже, все загнется из-за нового "пиши как угодно" синтаксиса.
Они в C++ раньше Java появились. И как бы интерфейс без возможности сокрытия данных и методов в наше время уже считается не совсем полноценным.
приватные методы неполноценны
Не вводите людей в заблуждение!
Вот по количествам строк кода Rust и С++ как раз не сильно отличаются, я смотрел исходники различных растовых библиотек, о краткости и лаконичности там и говорить не приходится.
Им обоим до Kotlin, например, далеко.
без паттерн матчинга это бессмысленно, и не так уж он нужен, множество мейнстримовых языков без него обходятся.
А в Rust зато ООП нет.
да вы если поднатужитесь, то и на 5000 напишете, я уверен )
На шаблонах и union можно сделать, и вообще много вариантов.
Во первых, фич в C++ гораздо меньше чем, например, в Scala. Это по поводу неуемного добавления фич.
Во вторых, синтаксис C++ проще вырвиглазного синтаксиса Rust, и становиться только проще со временем начиная с 11 стандарта (всякие auto, новый for, ламбды и.т.д.). Вы просто путаете синтаксис и возможность выстрелить себе в ногу. Да, в Rust гораздо сложнее это сделать, но он и менее гибок.
В третьих вы пишете ерунду по поводу 99% ПО, ибо все мало мальски серьезные десктопные приложения пишутся на C++. Тулзы, браузеры, 3д софт, графические редакторы, видеоредакторы, музыкальные студии, игры и.т.д. Даже тот же Firefox состоит лишь на 9% из Rust, по моему это фиаско для языка, стабильная версия которого вышла в 2015 году.
И на мобилках все серьезные игрушки понятное дело, кроссплатформенные и во многих случаях написаны на C++. Так что язык не маргинализировался, он остается на своем месте, и будет всегда там оставаться. Просто разрослись веб и мобильные сегменты, до невероятных размеров, а C++ прекрасно чувствует себя в своей нише.
Это же не Case классы.
Автор утверждает что у него есть сертификаты Microsoft (и не один).
Это как минимум означает, что человек умеет работать с информацией (в том числе разбирается, где нужное — а где лишнее),
и умеет искать информацию.
Он говорит что «прочитав гору статей и просмотрев кучу видео «Как стать Java программистом»», он не смог разобраться более продвинутой книге
«Философия Java», мол, она не для новичков.
Парадокс в том, что после усвоения «горы статей» и «кучи видео», (и, разумеется практики, не зря же он себе IDE поставил), он перестал бы быть новичком.
Если конечно, голова на плечах есть, а она есть, если у него есть сертификаты MCP, MCSA и VCP.
Так что что-то не сходится.
Может, я чего не понимаю?
Вот пример использования Apache Spark, на Python и Scala:
Python:
Scala:
Что лаконичней?
В Python не устали писать «lambda» каждый раз, и ставить "\" в конце строки? Зачем это?
В scala лишнее слово Val перед переменной означает ее объявление и также то, что ее значение не может измениться в будущем.
(Издержки статической типизации, но это позволяет ускорить выполнение программ и предупреждать ошибки, по сравнению с питоном)
Далее вопросы к синтаксису:
В чем тайный смысл двоеточия, если по идее, должно быть достаточно отступов для формирования блоков кода?
Тоже и с оператором IF.
(Кто нибудь может сказать, что это для того, что бы писать операторы в той же строке, но часто вы в питоне такое видели? )
Далее идут классы.
Мы что, на C++ пишем? Зачем двойные подчеркивания в языке высокого уровня?
«def init» никак не прошло бы? Давайте тогда и класс через "__class" объявлять, почему так не сделали?
Ну и напоследок о скорости питона.
Он до 50 раз медленнее scala.
Он значительно медленнее PHP, Javascript. Epic fail.
Скорость выполнения задач обспечивается библиотеками, написаными на C.
И не говорите о PyPy — это не стандатный питон.
Выводы:
Крайне медленный и весьма многословный язык, малоэстетичный.
Если его позиции пошатнутся, всем это только пойдет на пользу. (ИМХО, разумеется)
На самом деле, не всегда.
Хороший компилятор С++ (Visual C, GCC) обычно генерирует код лучше, чем если писать вручную.
Плюс может использовать SSE/AVX инструкции.