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

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

Зато сразу понятно даже «гуманитарию».

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

Кстати, Kivy всё ещё под 2.7
А больше и не знаю, где 2.7

Shadow ★★★★★
()

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

%яп%

Ублюдочными идентификаторами переменных.

// Не читал дальше заголовка

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

У меня прошло еще когда я вдвое моложе тебя был. О планах этих ОC по переходу на Python 3 ты, конечно же, не знаешь?

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

Что имеют ввиду под фразой: джава - многословна? Длинные имена классов/переменных или то что требуется много лишних движений для определенных действий (или что-то другое)?

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

Что имеют ввиду под фразой: джава - многословна?

public void closeContext(MergedContextConfiguration mergedContextConfiguration, HierarchyMode hierarchyMode)

Вот это, например. Но есть случаи намного лучше. Вот, например:

System.exit(SpringApplication.exit(applicationContext, new ExitCodeGenerator() {
                @Override
                public int getExitCode() {
                    return 0;
                }
            }));

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

Что есть - то есть, с этим не спорю

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

PL/I (именно так пишут название языка знающие люди) проще, чем Си++.

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

Кстати, про питон. Опишите примеры, кому GIL реально мешал.

Мешает тем, кто использует его не по назначению.

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

По мне, лучше полные имена, бегло норм читается, если привык к английскому. А вот с десяток таких имен как HSGB, ict2, jfro или однобуквенная радость в 500 строчном методе - это вот как раз боль.

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

Ну первый пример - ладно, а второй - это 2 вызова с анонимной функцией внутри. И всё это только для exit(0). Вопрос, нахрена?

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

На самом деле очень быстро привыкаешь и потом это кажется только плюсом (уже не можешь писать сокращенно даже в маленьких скриптах).

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

Еще одна проблема, чисто джавы и очень больших фреймворков - нужно писать длиннющие имена потому, что так и не завезли алиасы для импортов. Но в реале в большом приложение столько абстракций, что приходится завозить классы из 3-4-5 имён, так в этой ситуации кажется удобнее (и позволяет бегло не путаться - мол, этот класс из этого пакета или вот из другого). Но с непривычки это выглядит ужасно :) но мне кажется это больше беда ООП, чем джавы.

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

но мне кажется это больше беда ООП, чем джавы.

ООПота с джавой тесно переплетено, так что это и её беда.

Но с непривычки это выглядит ужасно :)

Да это вообще ужасно. Когда одно простое условие на 3 стоки, например. А еще всякие паравозы из вложенных методов.

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

ООПота с джавой тесно переплетено, так что это и её беда.

Этот трэш я впервые еще увидел в PHP, там он вызывал куда больше вопросов, когда все тоже самое делалось на коленке с многомерным массивом в одной функции. Но увы это дань моды, сейчас вот дрочат на ФП, во всяких колбэк-хеллах, завтра хайпожорам еще что-то завезут, ...я так понял эту «глупость» в программирование ни как не победить :)

Да это вообще ужасно. Когда одно простое условие на 3 стоки, например.

За то открыв где-то вне редактора (например, на сайте гитхаба) можно понять что в этом условие или методе происходит, без поиска по всей портянке, что там имел автор под фразой hrTask или что за класс такой ERСtxCntMn

Ну еще вопрос, конечно, насколько большое приложение пишется. Если 50 классов, то в голове их короткие имена можно запомнить, а вот если их 5000, то ERСtxCntMn это чистый трэшак

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

Ну еще вопрос, конечно, насколько большое приложение пишется. Если 50 классов, то в голове их короткие имена можно запомнить, а вот если их 5000, то ERСtxCntMn это чистый трэшак

Да, большое приложение - это в любом случае трэшак.

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

Мне эти планы совершенно не интересны. Когда по факту в тех линуксах, которые я использую (Debian Stable, RHEL), исчезнет Python 2, тогда и можно будет смотреть на 3. Пока 2018 год и в этом плане ничего не меняется уже 10 лет.

Да, я ещё казуальный юзер пайтона, мне пофиг на все эти миллионы библиотек. А кому не пофиг, те, скорей всего, надолго застрянут на 2.

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

Лол, чтобы ты сказал, если бы в списке была Ада

Про аду вообще ничего не знаю, ничего бы не сказал.

Хацкель

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

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

Что имеют ввиду под фразой: джава - многословна?

Классический боян «public static final Борщ борщ, пожалуйста!». Ну и сравнение с Котлином часто приводят как пример лаконичности.

outtaspace ★★★
()
Ответ на: комментарий от crutch_master
public void closeContext(MergedContextConfiguration mergedContextConfiguration, HierarchyMode hierarchyMode)

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

public void closeContext(MergedContextConfiguration ctxCfg, HierarchyMode hmode)
Второй фрагмент, начиная с java8 (релиз был в 2014 году) можно так
System.exit(SpringApplication.exit(applicationContext, () -> 0);

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

«public static final Борщ борщ, пожалуйста!»

«public static final Борщ борщ = new Борщ» же

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

думаю, это всё за пару вечеров осваивается

обычно именно так и думают когда

не изучал

думаю, это всё за пару вечеров осваивается

еще больше тех которые «досконально не изучал» на таком же уровне знают С++ :)

slackwarrior ★★★★★
()

Что плохого в Java

C++ HotSpot JVM; jar-hell; immutable java.lang.String; Thread.stop(); JavaBeans; java.io.File; CORBA; Runtime Annotations; Type Erasure; logging API; JavaFX.

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

Когда по факту в тех линуксах, которые я использую (Debian Stable, RHEL), появился Python 3, тогда и нужно было переходить на 3.

FTFY.

t184256 ★★★★★
()

1) Python

Классный язык. Отлично спроектированный. Легко писать и читать. Полно библиотек.

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

Няшная штучка. Самый быстрый скриптовый бэкенд. Асинхронная модель рулит. Много языков, который компилируются в JS - выбирай любой по вкусу.

3) PHP

Хз, я на нем не писал.

4) Java

С пивом потянет. Хотя лучше взять какой-нибудь другой язык на JVM.

5) Kotlin

Java++. Это один из языков, которые делают JVM приемлимой платформой.

6) Scala

Дяденька Одерский перемудрил. Курнул чего-то не того.

7) Dart

Ненужно.

8) C#

Оно где-то есть, но мне его не видно. И слава богу.

9) Swift

Миллионы мух, восхвалявшие Objective C, теперь с таким же рвением восхваляют Swift.

10) C

Линус одобряет.

11) C++

Отличный инструмент для выявления ниосиляторов.

12) Rust

Придуман извращенцами с особыми пристрастиями к анальному сексу острыми приборами.

13) D

Самый лучший язык, который на***н никому не сдался.

14) Go

Гениальная идея, с помощью которой Гугл поставил процесс написания программ на конвейер и сделал программеров взаимо-заменяемыми винтиками.

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

15) Perl

Не дождётесь!

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

Хацкель

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

То есть ты его изучал меньше, чем 2 вечера? Один вечерок глянул? Надо было уж напрячься, выделить еще один, и был бы еще один ЯП в резюме.

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

В JS обращение к членам класса идет через this,

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

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

> В питоне ООП реализовано на абстракциях питона,
Т.е. в языке изначально не заложено.

ты наркоман?

shimon ★★★★★
()

15) Яр

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

Помесь 1С с Вонни, что делает его абсолютно не читаемым даже для русско—говорящих, не говоря уже об остальном мире.

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

Единственный выход из этой ситуации — это наступить себе на горло и выкинуть в мусорку это поделие.

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

Но самое главное, нужно объяснить миру зачем же это поделие нужно. Какие задачи оно решает лучше, чем существующие решения.

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