Здравствуйте, Ikemefula, Вы писали:
I>>>Ога. Он генерит кучу дерьма только из за того, что в джаве совсем другая система типов. При чем здесь JS ? S>>Давай примеры. I>Чем представлен number в JS и во что gwt компилит, например, лонги ? ВЫ делаете утверждение — ВЫ предоставляйте примеры, не я.
I>>>Программирование на любом языке это прежде всего идиомы. И в каждом языке начинаются проблемы, если ты пробуешь писать без этих идиом. S>>Вы сейчас цитируете стандартный мануал евангелиста javascript "Ой, это не язык говно, это вы не так его используйте". I>Так с каждым языком. Если ты на Джаве начнешь писать как на плюсах, язык покажется очень кривым.
Ещё раз — мне не нравятся идиомы js... А дальше по тексту из предыдущего сообщения
I>>>В каждом. S>>Не спорю, просто мне не нравятся идиомы, направленные на говнокодинг. Ergo — мне не нравится js (и php заодно). I>Не совсем понятно что ты имеешь ввиду. Есть какой нибудь релевантный пример ? Классика
Здравствуйте, Слава, Вы писали:
С>Здравствуйте, gandjustas, Вы писали:
TSP>>>Плюс побочный проектик, где нужен фронтенд и там во весь рост JS. Как с этим жить? В одну руку берешь костыль VueJS, в другую jQuery и потихоничку ковыляешь в волшебный мир web 2.0. G>>Ты удивишься, но из 5 последних проектов jquery был только в одном.
С>А что вы вообще используете для JS?
Vscode и TypeScript. Иногда visual Studio.
С>Какой у вас путь от написания кода на js/ts до выкладывания собранного на staging?
Не понял вопроса. При сборке TS компилируется в JS. Если SPA, то еще и каконить webpack запускается.
Здравствуйте, alexzzzz, Вы писали:
A>Как можно отличать "нормальный код" от "ненормального", не понимая внутренней логики языка? Никак. Вот и ищу в js логику.
Тут классика:
"В Русском языка Сол пишется с мягким знаком, а терелька без. Это невозможно понять, можно только запомнить".
Но, конечно, подход у ответивших выше... даже не знаю как назвать. Я тоже всегда считал, что нужно знать как и почему, а оказывается нужно знать "идиомы". О, кажется знаю как назвать: религиозный подход к программированию.
Здравствуйте, TimurSPB, Вы писали:
TSP> Большинство этих всех фреймворков не расширяют язык, как скажем boost в плюсах, а создают экосистему затычек и примочек для несчастного JS.
Ну, это вы зря. При всей моей нелюбви к js, ситуация с boost'ом просто один в один, если не хуже. Та жесть, которую творят создатели буста в своих шаблонах выглядит ни чуть не менее уродливой, чем соответствующие извращения в js.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, gandjustas, Вы писали:
G>>Я не писал что клиент всегда прав. Это ты сам придумал. I>Писал, только не в этом топике.
Значит ты фразу выдернул из контекста.
G>>Выбор ты придумал. G>>Я тебе только сказал что лучше быстро, чем медленно, и что лучше быть богатым, чем правым. Последнее — не моя фраза, подслушал у кого-то. I>Это и есть выбор. Подслушал ты или нет, дело десятое. Ты ему следуешь, по твоим же словам.
Ты не на ту часть моего сообщения ответил.
G>>>>Еще один демагогический прием, ты конкретные понятия в обсуждении попытался заменить абстрактными. I>>>"правым или богатым" это по твоему конкретные понятия ? G>>По крайней мере формализуемые. В отличие от "быть собой" и "счастливым". I>Ты уже в который раз отказываешься от своих слов и задним числом корректируешь смысл.
Я ничего не корректирую, это ты сам пытаешься исказить смысл. Тебе что-то мешает формально определить смысл слов "быть правым" и "быть богатым" ?
Здравствуйте, Слава, Вы писали:
С>Здравствуйте, gandjustas, Вы писали:
TSP>>>Я вот представляю себе вариант, когда C++14 конвертируется в С++98, потом компилируется... Ну жесть же. G>>Там же все еще интереснее происходит, с учетом препроцессора, obj файлов, линкера и преображования в машинный код. G>>Как ты с этим живешь?
С>В мире с++ это всё выглядит менее ублюдочно.
На самом деле гораздо более ублюдочно. Просто ты привык.
Здравствуйте, Artem Korneev, Вы писали:
AK>Вы предлагаете рефакторить весь код перед началом работы?
Путем каких логических заключений ты пришел к такому вопросу?
G>>То есть код из JS в TS можно превратить в 100-1000 раз быстрее, чем код был написан.
AK>Эм-м.. 10 минут * 1000 = 10000 минут = ~167 часов. AK>Написание 400 строк кода на JS занимает до 167 часов? o_O А что за код там?
Почему ты на 1000 умножил, а не на 100? 400 строк пишется примерно за 16 часов.
AK>Кстати, как? Есть какой-нибудь простой способ прикрутить TypeScript к Angular 1.x? А то наши UI-девелоперы не знают, как это сделать. Ковыряются с голым JS на Angular.
Есть, переименовываешь .js в .ts, cтавишь типы, отключаешь implicit any и добавляешь аннотации пока не скомпилируется.
Потом превращаешь контроллеры в классы для пущей красоты.
Здравствуйте, Somescout, Вы писали:
S>Здравствуйте, gandjustas, Вы писали:
ARK>>>Во, у меня в джва раза меньше строк! G>>Слив зощитан
S>А что не так? В одном случае фрэймворк браузер, в другом COM + MSOffice. Ситуация более чем схожая.
Примерно как сборку аэроплана сравнить с покупкой Боинга. Вроде и то и другое летает, только Боинг круче. Но стоимость решений отличается в несколько миллионов раз.
Здравствуйте, gandjustas, Вы писали:
G>Примерно как сборку аэроплана сравнить с покупкой Боинга. Вроде и то и другое летает, только Боинг круче. Но стоимость решений отличается в несколько миллионов раз.
Причем тут вообще стоимость решений? Пц. Речь о том, что утверждение про "можно написать эксель в 30 строк на жабаскрипте" — это такой же дебилизм и профанация, как и подключение экселя через интероп.
Да еще и преподносится на таких серьезных щах, я фигею. Чуть было не поверил (на самом деле нет).
Здравствуйте, turbocode, Вы писали:
G>>А какая причина его заменять, кроме того что он тебе не нравится? T>А что в нем хорошего? Как костыль для HTML он свое дело делал в 90-х, но все идет к тому что нужно делать на нем целые аппликации, а для этого он никак не годится. Масштабирования никакого.
Надо ещё зубоврачебные щипцы удлинить, а то неудобно вырывать зубы через задний проход.
Здравствуйте, novitk, Вы писали:
G>>А какая причина его заменять, кроме того что он тебе не нравится? N>ИМХО главная проблема с JS — все больший ареал распространения. Разработка на едином, пусть даже очень корявом языке вместо двух и более дает столько гибкости, что JS начал вытеснять остальное даже в нишах где есть намного более удобные инструменты.
Для гибкости существуют библиотеки. И вообще я удивляюсь, что до сих пор не изобрели качественные переводчики с одного программного языка на другие.
Здравствуйте, turbocode, Вы писали:
T>Проблема в том что в браузерах HTML первичен, а JS вторичен. T>Тогда как сейчас в свете разработки web-апликаций нужно ровно наоборот: грузится JS программа которая подгружает и управляет разметкой. И для этих целей выходит что JS ни в какие ворота не лезет.
Здравствуйте, Artem Korneev, Вы писали:
AK>Я упомянул Microsoft просто чтобы отбросить мысли о тупости конкретного товарища.
Буа-га-га!
AK>Таких товарищей, которые пишут хороший код на других языках, но не могут нормально писать на JavaScript, довольно много. Из чего я бы сделал вывод, что JS слишком уж легко позволяет накосячить в коде.
Да, нет защиты от дурака. Из чего делаем вывод... делаем вывод... что JS плох!
AK>Яркий пример для JavaScript — "this", там жешь не поймёшь, когда куда оно ссылается.
Туда же, куда ссылаются перегруженные методы нашего-всего-ООП.
Вы любите ловить покемонов? Тогда событийное программирование для вас.
Здравствуйте, novitk, Вы писали:
N>Много не заработаешь. Освоить JS много проще чем даже Яву. Тут даже техникум не нужен, буквально школота справится.
Так может это плюс?
N>Энергозатраты потраченные на детальное знание очередного "СуперДуперАнгуляр 12.0" малоэффективны, так как он устаревает быстрее бабочки.
Здравствуйте, gandjustas, Вы писали:
G>Не смогли победить JS, странно да? Такой ужасный язык никто не смог победить.
Отнюдь. Причина, по которой JS до сих пор жив, весьма проста — совместимость и legacy. Если бы сейчас появился новый замечательных язык для вёба, миллионы веб-сайтов не перешли бы на него за неделю или даже за два-три года. В ближайшие 10-15 лет пришлось бы поддерживать JavaScript для работы с уже существующими сайтами. А для нормального распространения нового языка, его поддержку пришлось бы быстро реализовать на куче самых разнообразных платформ.
Никто не хочет инвестировать время и деньги в такую затею. Как бы не был крив JavaScript, он останется доминирующей платформой для вёба ещё надолго.
G>Даже гугл со своим dart не осилил.
Dart изначально планировалось делать лишь как надстройку над JavaScript (с надеждой в будущем заменить оный совсем), потому Dart в целом и выглядит лишь как "улучшенный JavaScript". И все будущие попытки избавиться от JavaScript тоже должны будут иметь с оным совместимость — вон тот же WebAssembly, вроде как, умеет работать поверх JavaScript (asm.js или что-то вроде того) чтоб его можно было запускать там, где оно ещё не поддерживается.
Сейчас пошли довольно многообещающие попытки придать JavaScript какую-то модульность и намёки на типизацию. На не-JS программеров оно, по-прежнему, навевает тоску и уныние, но уже не вызывает столько лучей поноса, как это было 5-7 лет назад. Поэтому у Google зуд с желанием выдать новый язык для вёба немного поутих.
Здравствуйте, Artem Korneev, Вы писали:
AK>Здравствуйте, gandjustas, Вы писали:
G>>Не смогли победить JS, странно да? Такой ужасный язык никто не смог победить.
AK>Отнюдь. Причина, по которой JS до сих пор жив, весьма проста — совместимость и legacy. Если бы сейчас появился новый замечательных язык для вёба, миллионы веб-сайтов не перешли бы на него за неделю или даже за два-три года. В ближайшие 10-15 лет пришлось бы поддерживать JavaScript для работы с уже существующими сайтами. А для нормального распространения нового языка, его поддержку пришлось бы быстро реализовать на куче самых разнообразных платформ.
То же самое касается любого языка JS и веб тут не уникальны.
Тем не менее Джава съела долю рынка C++, а C# съел долю рынка Java.
Но ни C++ (activex), ни Java (gwt), ни C# (Script#), ни dart не смогли победить JS.
AK>Никто не хочет инвестировать время и деньги в такую затею. Как бы не был крив JavaScript, он останется доминирующей платформой для вёба ещё надолго.
Наоборот, многие пытались, не получилось ни у кого.
G>>Даже гугл со своим dart не осилил.
AK>Dart изначально планировалось делать лишь как надстройку над JavaScript (с надеждой в будущем заменить оный совсем), потому Dart в целом и выглядит лишь как "улучшенный JavaScript". И все будущие попытки избавиться от JavaScript тоже должны будут иметь с оным совместимость — вон тот же WebAssembly, вроде как, умеет работать поверх JavaScript (asm.js или что-то вроде того) чтоб его можно было запускать там, где оно ещё не поддерживается.
С JS даже проще, чем другими языками, достаточно любой язык компилировать в JS и все — ты автоматом поддерживаешь все браузеры и весь легаси. Но dart это не помогло никак.
AK>Сейчас пошли довольно многообещающие попытки придать JavaScript какую-то модульность и намёки на типизацию. На не-JS программеров оно, по-прежнему, навевает тоску и уныние, но уже не вызывает столько лучей поноса, как это было 5-7 лет назад. Поэтому у Google зуд с желанием выдать новый язык для вёба немного поутих.
А вот Microsoft смог. По простой причине — он не пытался заменить JS, а улучшил его, разом дотянув удобство разработки до современных яызков и IDE.
Из этого простой вывод — в JS есть что-то чего нет в других языках и без этого другие языки не могут вытеснить JS.
Здравствуйте, koandrew, Вы писали:
G>>Более того, ты же банально не знаешь в каком состоянии железка была ДО подключения. Поэтому все равно в начала у тебя будет приведение к нормальному состоянию, а только потом запросы и ответы. K>Вообще-то знаю. Ибо запускают софтину перед началом смены, когда все роботы в "исходном состоянии". Это ручной процесс, и он осуществим только тогда, когда конвейер остановлен.
Правильно я понял, что у тебя софт запускается и не падает на протяжении всей смены? А если падает, то это перезапуск с ручным приведением устройств в исходное состояние?
Тогда финализаторы точно не нужны. Нужно писать программу так, чтобы она не завершалась нештатно и вовремя вызвать Dispose.
Все пляски с CER и CriticalFinalizeObject нужны когда ты не контролируешь состояние твоего объекта (читай пишешь библиотеку для других), а когда ты сам пишешь приложение, то полагаться на эти механизмы скорее вредно.
В этой статье описаны все случаи когда и как надо применять финализаторы — https://www.codeproject.com/Articles/29534/IDisposable-What-Your-Mother-Never-Told-You-About
Любое другое применение — скорее всего ошибка дизайна.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, gandjustas, Вы писали:
G>>Сколько склепали и все сдохли Не смогли победить JS
НС>Трансляторы в принципе не могут победить JS, потому что в него транслируют.
И что? Большинство языков транслируют в машинный код, кто-то пишет в машинных кодах? Никто вообще. Даже на ассемблере пишут очень малые доли процента программистов.
Вопрос не в том что исполняет браузер, а в том на чем пишет программист.