- 1
- 2
- 3
- 4
function addTemplates(tpls) {
window.templates = window.templates || {};
extend(window.templates, tpls);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−51
function addTemplates(tpls) {
window.templates = window.templates || {};
extend(window.templates, tpls);
}
Индусский код на примере vk.
Пиздуй писать снежинки на своём жквери, уже как раз сезон.
Программисты на нормальных ЯП обычно знают что такое SP или BP, например, но это не мешает им писать на плюсах, правда? На ассемблере они не пишут
JS это единственный высокоуровневый ЯП который блевотен до такой степени, что в него компилируется кто угодно: от кофескрипта и тайпскрипта до котлина и джавы, потому что на чистом js с его прекрасным "наследованеим" никто писать не хочет.
Ну кроме конечно всякого вебшлака, для которого мир делится на "JS"и "жуквери"
Есть, на минуточку, заказчики, которые хотят, чтобы всё было написано руками, без сторонних библиотек. И я их прекрасно понимаю, потому что если это какая-то чувствительная отрасль, при следующем аудите их выебут за то, что используется jquery, подгружаемый, не дай боже, через CDN. Просто по формальным признакам. И вот тут наступает время для таких вот велосипедов, ну а там может быть как ГК, так и хорошие решения, в зависимости от команды.
Насчёт блевотности JS - да, местами есть, и я уже здесь на эту тему отписывался, но как по мне, так кофискрипт в этом плане ещё хуже. Остаётся TS, у которого вероятно большое будущее.
Да, и чтобы два раза не вставать. Прототипное наследование блевотным может назвать только тот, кто дрочил пять-семь лет на плюсы, а это - отдельная каста.
Это не хуита, а правда: чистый JS крайне неудобен для проектов больше хеллоуворлда, и радоваться ему может только тот, кто больше никакого языка не пробовал.
Вот именно потому и появилось так много всего, что компилируется в JS.
В JS отвратительно все: начиная от отсутствия IDE со статическим анализом (даже для ПХП он есть!) и заканчивая вырвиглазным синтаксисом из лесенок.
>> аудите их выебут за то, что используется jquery, подгружаемый, не дай боже, через CDN
Почитай про компиляцию JS, узнаешь что не обязательно что-то куда-то подгружать.
>>Остаётся TS
Остается еще туева хуча: https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js
>> Прототипное наследование блевотным может назвать только тот
..кто хоть раз в жизни попробовал нормальное наследование, и кто знаком с паттернами и best practices которые есть не только в плюсах, но и в C#, Java, даже в Python, и только в JS их нет. Именно потому любой проект на JS выглядит как говно.
Не существует никакой причины писать на чистом JS да еще и без библиотек для проекта уровня VK.
Для фитона они тоже есть, тем не менее, пользоватсья можно или супертормозным pycharm, или каким-нить ipython в со-со-соснольке. О соснольке уровня браузерной для фитона только мечтать можно.
>и заканчивая вырвиглазным синтаксисом из лесенок.
Это не проблема ecmascript как такового, а проблема отсутствия синтаксиса async/await в языке, который в основном используется для асинхронного программирования.
ну поставь xmx 2048 и не будет тормозить:) Важно что они, по крайней мере, есть. Иеще python tools for visual studio.
А все IDE для JS обычно тупые как пробки, ибо JS стат. анализу не подвластен.
>>Это не проблема ecmascript как такового, а проблема отсутствия синтаксиса async/await в языке
Лол) "Это не проблема языка, а проблема отсутствия в нем средств". Согласен)
Даже на некрожелезе? Все иде у меня нормально работают кроме pycharm.
>Важно что они, по крайней мере, есть.
Почему ты говоришь о них во множественном числе?
Ecmasctipt await не нужен, т.к. он не привязан к браузеру и следовательно к асинхронному программированию.
Конечно нет. Поставь себе 16Гб ram, выдели из них 2Гб на pycharm и он залетает.
>>Все иде у меня нормально работают кроме pycharm.
орлы? Поставь себе visual studio 2015, пожалуйста.
>>Почему ты говоришь о них во множественном числе?
1) pycharm
2) Python Tools for Visual Studio
>>Ecmasctipt await не нужен, т.к. он не привязан к браузеру и следовательно к асинхронному программированию.
лол, ты правда думаешь что асинхронное программирование нужно только в браузере?
А десктоп реактивный? А сервер с кооперативкой?
Как ты думаешь, зачем async/await завезли в питона и c#?
И кстати в ES6 он есть
PS: вообще средств много: https://en.wikipedia.org/wiki/Futures_and_promises
Они даже в ерланге есть
>2) Python Tools for Visual Studio
Есть причины это ставить? Плагин для платной ide? Чем она лучше хотя бы pydev?
ecmascrpti *может* существовать без асинхронного программирования, в браузере это невозможно.
>А десктоп реактивный?
Што?
>питона
Веб-серваки
>c#
Гуй (попробуй найти программу,которая не виснет, если открывается файл по сети).
>И кстати в ES6 он есть
И кстати, где твой ES6?
да, погугли
>>Што?
https://en.wikipedia.org/wiki/Reactive_programming
>>попробуй найти программу,которая не в
любая программа, автор которой умеет асинхронное IO. Бля, даже win32api умеет.
>>И кстати, где твой ES6?
пока нигде
Неа. Сюда неси.
>любая программа, автор которой умеет асинхронное IO.
Названия давай мне, блядь.
>пока нигде
АТО.
https://code.visualstudio.com/docs/languages/python
>>любая программа, автор которой умеет асинхронное IO.
Explorer.exe начиная с семерки
>>АТО.
Ты решил вернуться на родину и защищать её с оружием в руках? Похвально!
>Explorer.exe начиная с семерки
Целая одна программа?
>Ты решил вернуться на родину и защищать её с оружием в руках? Похвально!
Проще пожертвовать денег на какую-то хуйню, из которой русню будут крошить на корм собакам.
А ты умеешь английский? Ты почитал про комплишен там? Видео посмотрел?
>>Целая одна программа?
Ты просил пример -- я тебе его дал. Предполагаю что многие контролы так делают, и потому там целая плеяда программ
Захуй покупать когда даже pycharm можно официально бесплатно юзать.
>Предполагаю
Не надо тут мне. Я тебе в 5 раз больше примеров приведу где так не делают.
Ты автокомплитом и апидоком похвастаться пришел, и это в платной ide?
Completely free Python support within Visual Studio.
С каких пор бесплатной VS стало можно пользоваться?
Не знаю, у меня стоит бесплатный Express. Решарпера под него нет конечно, но комплишен есть и компилятор работает
>>да и бесплатная ide сама по себе днище, по-моему.
лол почему?
>лол почему?
Уже не помню, но осадочек остался.
--Никогда не носите синие свитера. Только мудаки носят синие свитера. Я один раз носил синий свитер
--и?
--Уже не помню что случилось, но осадочек остался.
, !
Хде? о_О
Дай конкретный пример.
Пример чего тебе? Синхронный код выглядит одинаково не зависимо от того, выполняется он в обычном потоке или в зеленом. Так же, как ядро снимает обычный поток с выполнения, когда тот делает блокирующий read на сокете, рантайм го снимает зеленый поток с выполнения, когда тот делает read на сокете из гошного пакета net.
Что тут объяснять-то надо? Для контекст-свитча не нужен специальный синтаксис. Его вообще быть видно не должно.
Молодец, а теперь переделай все api js под это. Кстати, пару примерчиков из го не помешало бы.
так вот же: https://github.com/gopherjs/gopherjs
было: document.write("Hello world!");
стало: js.Global.Get("document").Call("write", "Hello world!")
Выглядит парашненько, но если сгенерить прокси то проблем не будет
По ссылке я открыл тебе существование этого языка. Или надо было туториал пересказать?
> а теперь переделай все api js под это
От апи с асинк/авейт оно будет отличаться только отсутствием этих самых асинков и авейтов.
> Кстати, пару примерчиков из го не помешало бы.
Я тебе википедия чтоли? Загугли.
>От апи с асинк/авейт оно будет отличаться только отсутствием этих самых асинков и авейтов.
И существующий код не сломается?
>Я тебе википедия чтоли? Загугли.
Ты сюда го притащил и что-то утверждаешь?
> Ты сюда го притащил и что-то утверждаешь?
Да.
Очевидно же
На фоне Хуесты даже ты выглядишь адекватно
Модульность там только на уровне рантаймтов (require.js итд).
"Повторное использование" примерно такое же, да: "скопируй с форума":)
Но нет стандартного способа описывать депенденсы
В js пространства имен для начала хоть появились?
Для модульности нужно уметь описывать модуль: его ID и зависимости. Этого в js нет.
В браузере npm нету потому что это платформа: под нее нужно компилироваться и линковаться
1) npm всенужныепакеты
2) компилируем и линукуем весь твой код и пакеты статически в govna_kusok.js размером 10 мегабайт
3) грузим его в браузер
Што? Почему нельзя модули грузить как раньше по хттп?
Из анонимной функции с use strict ничего не утечёт наружу без явного указания.
На словарях можно собрать иерархию имён любой глубины.
В питоне два модуля могут конфликтовать просто потому, что имеют имена. В JS можно создать безымянный лексический контекст и использовать его как модуль, который не способен конфликтовать, правда не очень понятно как им пользоваться.
С другой стороны в питоне тоже можно создать функцию внутри функции, или даже лямбду и конечно же она ни с кем не будет конфликтовать.
А словари в питоне тоже есть)
> она ни с кем не будет конфликтовать
Будет. Модуль в лямбду не всунешь. Имя останется.
>В js два модуля могут не конфликтовать просто потому, что не имеют имен. правда не очень понятно как ими пользоваться.
Ахуеть лол :)
Если у херни есть имя, есть ненулевая вероятность, что кто-то придумает другую сущность с тем же именем (input, raw_input например). Если у херни нет имени, его можно назначить или вставить херню в код напрямую.
Вырожденный пример - скомпилировать все модули в один файл, передав их как аргументы мэйну:
Преимущество в том, что пользователь (мэйн) даст имя модулю, а не сам модуль.
Модуль не знает, с кем он будет конфликтовать, а мэйн точно знает, какие модули использует.
Ясно, хуле я с тобой вообще разговариваю. Дебилы набежали.
одинаковое имя у модулей или невозможно, или это быстро обнаружится.
Умник, снаружи имя модуля останется
А что это у нас за huj такой? Самоназвание модуля. Второй модуль huj приведёт к конфликту.
>> одинаковое имя у модулей или невозможно, или это быстро обнаружится.
Именно. А если модуль не определяет себе имя, таких ограничений нет.
Когда менеджер пакетов языка позволяет загружать свой код, красивые имена быстро забиваются. Нормальные пакеты называют хер пойми как, первыми гуглятся пакеты школьников.
Конфликт имен-то тут причем?
import main as huja_lisogo_a_ne_konflict
А если с другим -- то не приведет.
И вообще: в JS _НЕТ_ средств описания модулей и _НЕТ_ способа их подключения
Это только абстракция. В машинном коде _НЕТ_ средств описания модулей и _НЕТ_ способа их подключения.
JS позволяет реализовать модули, питон позволяет реализовать модули. import в питоне и любом языке с eval - только ненужный сахарок для очевидного.
Если стандарт ЯП описывает понятие модуля, то можно создать модуль который будет работать всегда и везде, в независимости от фреймворков и внешних приблуд.
В JS таких средств нет: require таким средством не является так как это не часть ЯП и не часть стандартной либы. В ES6 это пофиксили, но где тот ES6?
А вообще лучше всего модульность реализована в сборках .NET.
Там у каждого модуля есть четкий ID и четкие депенденсы.
вi просто его неправильно готовите, JavaScript: The Good Parts от крокфорда
Охуенно)
кек
Как связана дерьмовость джс с браузером?
Есть TS, в котором (я уверен) есть модули, который тоже транслируется в жс и выполняется в браузере.
Я к тому, что каким бы говном жс не был, в браузере выполняется только он (ну и vbscript для особоых граждан).
С тем же успехом можно искать ООП и неймспейсы в сях. Но если я нидайбоже назову си говном, меня тут же отпиздят ногами многочисленные адепты. Вот и вся аналогия.
Нормальные юзеры сишечки имхо должны четко знать ее область применения.
Ох лол. Т.е. жопоскрипт жив только за счёт монополии на запуск в браузере?
Ну тут как бы челендж был...
А веб на делфи - это как перекладывать навоз совочком.
У борланда была среда, для разработки визуальных PHP приложений.