щяс бы стебать язык который единственный в свое нише и не имеет аьтернатив (в плаен реальных альтернатив нормальных языков)
Почему бы и нет? Вряд ли кто-то на серьезных щах будет отрицать, что это язык со странностями в наши дни.
о языках в таком ключе "странности" говорят только новички которые уже на каком то другом языке работали и пришли в новый язык и начанают этот язык мерять по старому своему опыту при этом не читая документаций и дико проигрывая с того что этот новый язык не идентичен тому на чем они раньше работали
в джаве странно что надо перед каждой переменной писать тип данных
Это как раз не странно - больше семантики в коде дает возможность компилятору и рантайму лучше анализировать корректность кода. У этого есть функция и объективная польза.
Но джава - далеко не идеальный язык, его тоже есть, за что попинать)
о языках в таком ключе "странности" говорят только новички
Почему? Новички редко имеют достаточный опыт с многими языками, чтобы содержательно общаться на эти темы. Это лига для "уже смешариков" )
Это как раз не странно - больше семантики в коде дает возможность компилятору и рантайму лучше анализировать корректность кода. У этого есть функция и объективная польза.
охтыжбля, правда, что ли? Компилляторы разучились по контексту понимать тип переменной? Как же тогда Котлин, который та же Ява на максималках, обходится без явного указания типа?
Просто так исторически сложилось, это никак не связано с тем, что "компиллятор не понимает". Тем более, блядь, в рантайме
Как же тогда Котлин, который та же Ява на максималках, обходится без явного указания типа?
В Java тип так же умеет выводится с помощью var, diamond operator и самих дженериков.
это никак не связано с тем, что "компиллятор не понимает".
Цитата ж не моя (да и там было про "язык", а не про компилятор), я как раз про то, что "Компилятор больше понимает с типами" и зачем эти типы можно указывать. Object писать никто не мешает жеж, будет как в любимом языке с динамической типизацией.
за var не знал, не работал с 10-й явой. Дженерики и алмазный оператор все же немного не про это
а из Object ты все равно не получишь динамическую типизацию. Нужно явно приводить к типу, а это нихуя не динамическая типизация
Ну вообще я говорил за то, что явное указание типа не связано с возможностью компиллятора понимать и анализировать код. Пережиток прошлого, не более
а из Object ты все равно не получишь динамическую типизацию. Нужно явно приводить к типу, а это нихуя не динамическая типизация
Дженерики как раз про это)
я говорил за то, что явное указание типа не связано с возможностью компиллятора понимать и анализировать код
Ну вот есть (старый) Java компилятор и у него это так связано, про него и речь.
Пережиток прошлого, не более
Хм, как вы представляете дженерики без ограничений типов или описание контрактов методов без типов?
Ну вот есть (старый) Java компилятор и у него это так связано, про него и речь.ну мы же говорим про новый, раз ты сказал про var)
м, как вы представляете дженерики без ограничений типов или описание контрактов методов без типов?
так речь шла про переменные
ну мы же говорим про новый, раз ты сказал про var)
Я уже не в первый раз общаюсь с тредстартером на эту тему, у него боль со старой SDK под Android, а вы про котлин в суе упомянули, вот и пришлось к слову.
так речь шла про переменные
Переменные можно объявлять и в дженериках.
у всех боль от старых СДК под Ведроид) только не из-за версии явы, а из-за возможностей самих СДК. Ну и из-за необходимости поддерживать все версии
я вот как гепатетический новичек могу давже возможно сказать что это глупо и пораждает лишние ошибки что надо было сделать гибкую типизацию и джава багованный) т.е. затереть ту же телегу что кто то затирает про JS
но так как я не таков и прекрасно все понимаю - я могу сказать что поблемы с любым языком будут только у человека который не удосужился читат ьспецификации где все предельно ясно бельным по черому написано
а для меня привыкшего что язык программироваяния умный
Спешу тебя разочаровать. Языки с отсутствием типизации очень "менее умные", чем языки с мягкой типизацией.
Это не язык умный, это он требует отпрограммиста большей ответственности, дая ему большие возможности. Не путай теплое с мягким.
язык не может быть "умным или тупым" язык логичен = уность\тупость удел людей которые с ними работает
именно по этому когда у люедй пробелмы с пониманием логики языка они ищут виноватого везде кроме себя и говорят "это язык багованный" "язык не правильно сделан"
и привел как пример что я гипотетически будь говнокодером мог бы доколупатсья до языка за вот такую типизацию просто вот по тмоу что раньше с такой не работал
и понимаете люди и к JS придираются за то что не понимают как он работает и меряют его по тому на чем работали прежде
оу, прошу прощения. Думал, ты утверждаешь, что ява забагованная
а что такое undefined в яве по-твоему?)
пы.сы. уже не первый раз пишешь, что учишь яву. Почему ее, а не Котлин, если не секрет?
Ответь себе лично на вопрос - понимаешь ли ты что такое замыкания (enclosures) в жабоскрипте. Если нет - то ты всё еще новичек. По стилю письма ты либо весьма молод, либо весьма глуп. Оба предположения перечеркивают утверждение про "хорошо разбираюсь".
проблема js в том, что js-серы пытаются его впихнуть туда, где он не нужен) в своей области он хорош и на данный момент незаменим
ну а undefined в яве я ни разу не встречал) мб ты имеешь ввиду нуллабельность?
а такие люди есть везде вон есть люди котоыре асемблер везде запихнуть пытаются
даже до смешного доходит - сделали веб-асемблер типа альтернатива JS да хрен там! на выходе он все равно будет в JS пересобираться) клоуны блин
затереть ту же телегу что кто то затирает про JS
Не стоит смешивать банальное незнание с проблемами языка. Конкретно эту телегу знающий человек завернет, объяснив незнайке суть вещей, во втором случае будет бессвязное мычание в духе: "Ну так повелось, просто заучи".
поблемы с любым языком будут только у человека который не удосужился читат ьспецификации где все предельно ясно бельным по черому написано
Спека вам не расскажет, скажем, почему (мотивация) банальное сложение {} + [] и [] + {} в JS дает разные (даже по типу) результаты, а не возбуждает TypeError. Это косяк дизайна.
{} + [] и [] + {}Неоднозначная ситуация с точки зрения интерпретатора. Да косяк дизайна. И ситуация очень спицифическая, в работе такой не встретишь(потому что нужно сложить именно пустой литерал обьекта и массив, в определенном порядке и определенном контексте, поэтому и не депрекейтят). В остальных языках разве нет ошибок в дизайне? Весь код воспринимается однозначно?
Вы еще ниже про ts упоминали, ts не тренд, а стандарт, уже давно. В 2012 сделали, популярным стал в 2015-ом
потому что нужно сложить именно пустой литерал обьекта и массив, в определенном порядке и определенном контексте
В каком порядке и контексте ни складывай - на выходе говно. Должно быть исключение.
В остальных языках разве нет ошибок в дизайне? Весь код воспринимается однозначно?
Во всех языках языках есть свои косяки, но мы их поругаем в собственных тредиках, по очевидным причинам не относящихся к JS.
Вы еще ниже про ts упоминали, ts не тренд, а стандарт, уже давно.
Именно. Костыль сверху накину не просто так, а потому, что JS не вывозит свои новые задачи.
В каком порядке и контексте ни складывай - на выходе говно. Должно быть исключение.Должно быть исключение? При сложении данных разных типов? Нет не должно быть. Приведение разных типов заложено в основу языка. В этом и заключается гибкая крутость языка.
Именно. Костыль сверху накину не просто так, а потому, что JS не вывозит свои новые задачи.Не костырль, зрелая технология. Решает свою задачу - писать большие приложения. Опять же язык не для больших приложений создавался, а для скриптиков и небоьших сценариев.
В этом и заключается гибкая крутость языка.
Гибкость - это перегрузка операторов в C++. А это - бесплатный генератор боли, встроенный в язык. От промышленного языка нужна надежность, а не гибкость. Чтобы любой индус мог поддерживать код годами, а не такие сюрпризы, стреляющие тебе в ногу, когда отвлечешься к кружке чая.
Не костырль, зрелая технология.
TS не нативен, иначе бы компилировался в байт-код, а не в устаревший морально JS. Текст - не самый оптимальный формат для передачи исходников. Вообще весь арсенал современного фронтового скарба - это наглядная демонстрация того, чего в платформе не хватает.
гибкость - это перегрузка операторов в C++.
Ну вы не можете это проделать со встроенными типами.
а не такие сюрпризы, стреляющие тебе в ногу,Так собственно гибкость js и не является сюрпризом. О каких сюрпризах вы вообще говорите. Потому что чтобы прострелить себе ногу с "{} + []" нужно в контексте глобального выполнения первично функции main выполнять сложение пустого литерала обьекта с массивом. Сама по себе ситуация абсурдна.
Чтобы любой индус мог поддерживать кодКакой бы язык не был, люлой индус не сможет его поддерживать
TS не нативен, иначе бы компилировался в байт-код, а не в устаревший морально JS. Текст - не самый оптимальный формат для передачи исходников. Вообще весь арсенал современного фронтового скарба - это наглядная демонстрация того, чего в платформе не хватает.1) Я не говорил что ts нативен.
2) Ну да js устрел морально, как и все языки со временем.
3) Да текст не самый оптимальный для передачи. А что оптимальное? Что вы способны послать в ie11, который это воспримет?
4) Да много чего не хватает, все завязано на обратной совместимости, специфики области, и т.д. Но аналогов нет, и не один язык не может похвастаться такой обратной совместимостью. Мы живем с наследием, и ждем другого пустого рыцаря, который вместит в себя веб)
Спека вам не расскажет, скажем, почему (мотивация) банальное сложение {} + [] и [] + {} в JS дает разные (даже по типу) результаты, а не возбуждает TypeError. Это косяк дизайна.
по тому что язык так работает - не надо так скалдывать - опять же челвоек пришел с языка где такое было приемлемо в язык который так не работает и пытается играть по старым правилам - и не доволен тем что язык другой
то же самое что ругаться что в js переменные через var объявляютс а не через $ и по этому он плохой
по тому что язык так работает
Как генератор багов он работает)
не надо так скалдывать
Ну язык же так работает))
Баги никто не отменял, поэтому если так складывать возможно, так и будут делать.
А контракты в JS фиксировать - страшная морока (тесты, гарды, вроде "in" и прочих Object.isPrototypeOf/hasOwnProperty), которой редко, кто на самом деле запаривается.
Настолько все плохо, что сейчас тренд - прятать JS под костыли, вроде TS/Flow.
опять же челвоек пришел с языка где такое было приемлемо в язык который так не работает
Так работает или не работает? 0_о
А если не работает, то это хорошо или плохо?
пытается играть по старым правилам - и не доволен тем что язык другой
Индустрия развивается и вырабатывает стандарты, это нормально.
Или попробуйте придумать причину, почему уродливое прототипное наследование в JS однажды внезапно спряталось под ключевое слово class, хотя еще лет 7 назад мне фронты в комментах вот вердили, что: "Поприходили со своих джав/шарпов и начинаете все свое ООП пихать везде". Сейчас тот же твист произошел со статической типизацией. Веб-фронтенд - это по жизни догоняющий стек в технологическом плане.
я вот джаву плохо пока знаю и у меня много что на ней не работает но я же не говорю что джава багованный - все баги там тупо от меня - ДА у меня пока с ней пробелмы но это не джава плоха - это я в ней плохо разбираюсь
если вы утверждаете что JS плохо работает то это означает только то что это ВЫ не умете с ним работать или по какой то причине работаете с ним не правильно так как не надо
резюмируя - плохому танцору всегда кажется что виноват не он
если вы утверждаете что JS плохо работает то это означает только то что это ВЫ не умете с ним работать
Офигительная логика) А "Жигули" - отличные машины, ни чуть не хуже порше, просто вы плохо рулите.
В Php тоже есть приведение типов, только работает иначе и очень часто без него не обойтись. Ниже наглядный пример, который демонстрирует преимущество явного приведения над неявным в Swift, думаю в javaScript ситуация аналогична. В масштабах крупного приложения/программы, с помощью одного только явного указания, можно экономить СЕКУНДЫ.
сегкунды экономится в других местах
хотя если у вас проект состоит только из переменных то наверно да
это то епт как к делу то относится? вы совершенно о другом говорим - о том что когда человек тупит в язык и плохо знает его тонкости
= то он скоерй всего от обиды будет называть язык криывм и багованным
Конкретно про Swift - проект в основной массе состоит из экземпляров класса, которые, присваиваются в переменные и константы, у каждого экземпляра класса, структуры и т.д. есть методы и свойства, которые тоже формируются из переменных и констант (в методах для разгрузки вычислений, свойства это по сути переменная и константа), когда вы создаете сложное поведение, количество этих "экземпляров" может достигать десятков тысяч. Я вам не про скриптик на страничке в интернете говорю, а про полноценное ПО, с потоками и общей структурой. Ни php ни js некорректно сравнивать с подобным т.к. php вообще не совсем язык программирования, а скриптовый язык, который выполняется один раз и все. JS в рамках загруженной страницы точно так же, максимум запрос к серверу отправит. В масштабах такой разработки, можно и не парится, всем плевать не то, что на лишние байты, а на лишние мегабайты. А касательно людей, которые ругают какой-то язык, так как непривычно с ним работать - это не разработчики т.к. разработчик изначально предполагает, что любое введение в язык имеет смысл и основу, а все тонкости изучает с головой перед погружением к проекту. Если Вы про горячие головы, которые кидаются в неизведанные дебри без подготовки, то всех их неизбежно ждет разочарование в будущем. Любое знакомство с языком начинается с документации как минимум, а лучше парочку книг прочитать, чтобы осознать возможности, особенности, а уже потом пробовать свои силы и даже при таком раскладе у опытных разработчиков возникают сложности. Но прошу заметить, что именно JS ругают и опытные разработчики в том числе, не потому что он НЕПРИВЫЧНЫЙ, а потому что это некий комбайн, который проглотит все, что угодно, можно написать наикривейший код и он будет функционировать на честном слове когда речь идет о JS. Учитывая сложность многих текущих решений, часто приходится поддерживать существующее и кем то ранее написаное решение, которое часто и написано горячей головой. Отсюда и не любовь в том числе.
это шутка? он же тоже использует JS) как и вообще все "альтернативные решения"
браузеры воспринимают по сухому итогу только JS) на момент написания этого комента
Это не совсем так. В "альтернативных решениях" JS обычно используется в качестве цели трансляции, в то время как WASM требует JS только в качестве тонкого слоя клея, который выделяет память под WASM и проксирует вызовы к браузерному API. Сам же WASM-байткод для браузера нативен.
т.е. ты можешь что угодно делать но браузер воспринимает только js если бы браузер был человеком он бы и не знал что там что то есть, по тому что он бы видел только js
браузеру подсовывается именно JS
WASM не подраумевает трансляцию в JS, если вы об этом.
браузер воспринимает только js
Таки в барузере в самом деле встроена виртуальная машина, исполняющая байткод напрямую. Роль JS здесь сводится к тому, чтобы ее позвать.
https://developer.mozilla.org/en-US/docs/WebAssembly/Using_t...
если бы браузер был человеком
Почему люди не летают, как птицы?)
с этим яуже давно смирился и просто констатирую
вот флеш ему замена нашлась однозаначная и он ушел, а JS пока нет как не называй не петляй понятиями но нет
Смотря что вы подразумеваете под альтернативами. Логику фронта не на JS писать можно уже давно (более того, сейчас это уже стандарт де-факто). А то, что он будет под капотом или где-то рядом вкрапляться, какое это имеет значение?
ничего не подразумеваю) кроме того что воспринимает в конечном итоге браузер - у браузер есть стандарт JS он его интерпритирует и более ничего
во всех почти нормальных браузерах даже есть в настройках галочка "воспроизводить JS" т.е. это говорит о том что это капец как фундаментально и основательно


IT-юмор
7.5K постов53.3K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору