LINUX.ORG.RU
ФорумTalks

Чем плох этот %яп%

 ,


2

3

Навеяно темой: Чем плох Go?

Впервые тред на лоре не перешел в срач между rust и c++, и даже, местами была интересная критика. Не знаю сможем ли повторить, но все же спрошу (выбирайте яп на ваш вкус).

Чем плох:

  • 1) Python
  • 2) JavaScript (именно бэкенд node.js)
  • 3) PHP
  • 4) Java
  • 5) Kotlin
  • 6) Scala
  • 7) Dart
  • 8) C#
  • 9) Swift
  • 10) C
  • 11) C++
  • 12) Rust
  • 13) D
  • 14) Go
  • 15) ...любой другой язык, о котором вы не смогли промолчать...

Перемещено tailgunner из development

Впервые тред на лоре не перешел в срач между rust и c++

Мне кажется вот оно, признание для Rust, наконец-то.

vertexua ★★★★★
()

Python, JavaScript, PHP → скрипты.
Java, Kotlin, Scala → JVM.
Dart, C#, Swift → корпорации.
С, С++, D → старьё.
Rust → недоделанный.
Go → убогий.

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

Я прочитал мануал по python

Питон, конечно, бейсик, и всё такое, но не настолько.

В питоне ООП реализовано на абстракциях питона,

Т.е. в языке изначально не заложено.

Видимо, надо уточнить, что вообще подразумевается под «абстракциями»? В жабоскрипте изначально заложено прототипное ООП. В питоне — классовое ООП, не изначально, но удачно добавлено на ранней стадии развития.

и вы их не знаете, если называете self указателем на класс.

Пусть будет ссылка на класса, пойдет?

Не, не пойдет. Пойдет, когда разберетесь, что это ссылка на текущий экземпляр класса, что такое bounded методы, что такое unbounded методы. Как вообще работает подкапотная машинерия питоньего ООП. Тогда придет понимание, зачем нужен self в питоне.

Virtuos86 ★★★★★
()

1) Python

Неконсистентостью стандартной библиотеки, разделением Python 2 vs Python 3, GIL

2) JavaScript (именно бэкенд node.js)

Legacy в языке. Обязательно нужно спрыгивать на ES6/ES7 ли что-то из этой сферы.

3) PHP

Проще перечислить чем он хорош. Но я не буду.

4) Java

Не готова для десктопа.

5) Kotlin

Не нужно, когда есть Scala.

6) Scala

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

7) Dart

Во фронтенд сообществе не любят когда абстракция от JS слишком толстая.

8) C#

Даже после появления версии для Linux, все равно вся инфраструктура заточена под Windows

9) Swift

Мало знаю о языке, но как-то все не побежали писать на нем не связаный с Apple софт, хотя претензия вроде быть в той же нише что и Go/Rust

10) C

Обычно проще взять С++. Сложно делать те оптимизации, которые возможны легко в шаблонах С++.

11) C++

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

12) Rust

Компилятор мешает программировать, иногда в совсем неадекватных случаях. Например попробуйте положить float как ключ в BTreeMap.

13) D

Маркетниг провален, все уже забыли все.

14) Go

Turbo Pascal 21го века, грин тредами. Язык мешает реюзабельности

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

Не, не пойдет. Пойдет, когда разберетесь, что это ссылка на текущий экземпляр класса, что такое bounded методы, что такое unbounded методы. Как вообще работает подкапотная машинерия питоньего ООП. Тогда придет понимание, зачем нужен self в питоне.

Но это выглядит рудиментом из прошлого, во всех языках обращение из метода класса к членам того же класса не нуждается в явном указателе на текущий класс, вот в JS нужно, там не было классов изначально, прикрутили ООП на прототипах и лексическом захвате. А в python почему так сделано? Я думаю в python3 могли бы убрать «синтаксический мусор».

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

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

Это делает Kotlin нужным

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

5) Kotlin

Не нужно, когда есть Scala.

6) Scala

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

напомнило про общественное мнение

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

напомнило про общественное мнение

А чего ты ждал от топика с такой заявкой.

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

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

Может и плохо, что не нуждается. А то потом у студентов магическое восприятие ООП. С другой стороны явный self конечно мусорит, вместо императивных команд какая-то беседа с самим собой. Такой код выглядит очень тупо, но для питона норм. Там все такое дубовое.

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

Мне известно их глупая отмазка по не обеспечению эргономики языка. И как обойти эту проблему через танцы с newtype

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

В питоне — классовое ООП, не изначально, но удачно добавлено на ранней стадии развития.

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

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

Под C# нет массы нужных библиотек, выпускаемых под другие языки.

Dllimport

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

Назови тех, у кого получилось намного лучше.

По сравнению с python, в жабе и руби ООП получилось, оба языка 95 года, когда ООП завезли в python?

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

Гений проектирования.

Назови тех, у кого получилось намного лучше.

в жабе и руби ООП получилось

Раньше ты говорил о проектировании, а сейчас вдруг ООП (которое является только часть проектирования языка) - почему так?

О несовместимом в рамках минорных версий Ruby, давшем нам понятие «monkeypatching», говорить смешно. Насчет Java - ну, вспомним только проверяемые исключения да дженерики на type erasure

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

Только это не сырые указатели. Проблема фиксится через newtype у который не может быть NaN. Если у них трава забористая, то хоть пускай деление для него не определяют. Или определяют з возвратом простого f32/f64. В моем случае пофиг - у меня нету делений. Но страдать я должен, потому что такого newtype в стандартной библиотеке нету, я его должен переизобретать. Это не очень сложно, обычная подсказка компилятору о природе данных

vertexua ★★★★★
()

Python — тем, что компиляция в нативный код через жопу. Остальные — тем, что не Python.

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

Раньше ты говорил о проектировании,

Ты раскрыл сеть моих анонимных ников.

В Python работа с классами не лучше, чем самописное ООП в js до классов (es3). По легенде JS написали за 10 дней, за сколько дней написали Python?

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

Раньше ты говорил о проектировании,

Ты раскрыл сеть моих анонимных ников.

Влез в чужой разговор - не удивляйся.

tailgunner ★★★★★
()

Не успел на первую страницу

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

Как этот факт делает язык лучше или хуже и чем тебе мешают какие-то там быдлокодеры

Так, что код пишется в том числе этими быдлокодерами и с ним потом приходится работать тебе

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

Нет объектов и готовых контейнеров

Контейнеры есть. А объекты, по мнению экспертов, не нужны

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

C

Слишком много сектантов

Или людей, видящих в этом секту

C++

«C++ — набор попыток пофиксить попытки пофиксить попытки пофиксить ... ...»

Как будто какую-либо сущность, созданную человеком, нельзя описать этой фразой

Deleted
()

14) Go

Худшее, что могло произойти с индустрией. Go настолько чудовищен, что у меня рука не поднимается ругать PHP.

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

Имеете ввиду отсутствие упорядочения для неопределённых значений? РСУБД, к примеру, вполне допускают индексы по nullable аттрибутам. Особых проблем, связанных с этим моментом, вроде не наблюдается

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

Ну а покажи мне работающие и живые реализации java без java-машины. Чтобы непосредственно в машинный код скомпилировать.

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

C/C++/Rust/$lang ты в машинный код без компилятора тоже не переведёшь. Получается, они привязаны к компилятору?

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

Ну если у тебя прошло - расскажи. Учитывая, что на куче ОС пайтон 2 стоит по дефолту и проще писать на нём, чем что-то доставлять.

Legioner ★★★★★
()

Лингвисты уже давно отказались от идей превосходства одних языков над другими, а программисты всё ещё этим страдают.

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

Смотря на сколько именно explicit и на сколько именно better

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

Суть в том, что байт-код менее производителен по сравнению с машинным кодом.

Да, python я скомпилить в бинарник тоже не могу, но это из-за особенностей языка.

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

Что думает нормальный человек, когда читает выше в этой теме: «Язык Х неполноценный, ведь в нём отсутствуют продвинутые конструкции У и Z. На нем обречены писать люди с низкими математическим способностями»?

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

На нем обречены писать люди с низкими математическим способностями»

Именно.

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

погнул лопасти?

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

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