Web hate [entries|archive|friends|userinfo]
webhate

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

For modern development Javascript indeed is a s̶h̶i̶t̶ dissapointing language [Sep. 2nd, 2022|12:34 pm]
[Tags|, ]
[Current Mood | complacent]
[Current Music |Теленочь Муз ТВ DJ White Я Ехала Домой]

На жаль вразливі до суспільної думки люди з часом видаляють критику JavaScript та павутинного програмування. На сторінці For modern development Javascript indeed is a s̶h̶i̶t̶ dissapointing language було написано що JS has inherent, deep issues. They are not solvable by making a new ECMA spec. а тепер там лише вибачення. Відновлюю справедливість.

I'm sorry, but the Crockford arguments do not cut it.

Javascript is so bad, on so many levels - it's not even funny. This is why I am so surprised everyone jumped on the node bandwagon with such excitement - yes, Node is faster than Ruby, but it's unfathomable to me that someone in his clear mind would want to rewrite his app in Node without being 100% focused on the evented model.

JS has inherent, deep issues. They are not solvable by making a new ECMA spec. They are not solvable by wrapping a better syntax around it like Coffeescript does. They are not solvable by standardizing on a require implementation or by introducing classes. There is an ECMA language with classes - it's called ActionScript and it's just as shitty as JS itself. These warts just are - and as long as the masses accept it as the status quo it's going to be exactly like the PHP framework landscape to this day: everyone and their mother will be spending man-years trying to create an infrastructure of tools around a shit language that will resist those efforts every single second.

Let me explain why I say that JS is awful. Of course, there are nice things in it - but the problem is that their utility is disputable. Prototypal inheritance, for example, is severly limited in utility - because all it offers you are function overrides. The "everything is a function" approach, while also gimmicky (look ma, I can also call this!), is also not particularly useful - because a function is not an object, not a datastructure that can carry data.

And then the real warts begin. Let's simply enumerate:

JS has callable attributes

This is a shitty design decision which most of the languages have made right at the start. In retrospect, it's difficult to blame the designers because they might have had performance issues - and, to boot, if you are not used to message-passing language the whole idea of "some attributes are callable and some are not" seems absolutely legal.

Hobjects are unusable for stable keys

The mixup between objects and hashes is also a very bad idea, because it defies the premise that objects can have metadata on them - which alllow you to establish a rudimentary type system or at least any kind of introspection.

Fobjects are unusable for type systems since an object does not carry any type information.

This one is a biggie. Even in the Ruby world, where everything is happily quacking like a duck, we often use the Object#class to get information about an object. A fairly standard procedure of styling an HTML element to a certain model object for example:

<div class='<%= model.class %>' id='<%= [model.class, model.id].join %>' >…

is impossible in JS because the only types offered are 'Object', 'function' and primitives. It's awful in all the ways Java is awful, and then some.

Null everywhere

Trying to use a constant with a wrong name by mistake?

MyApp.SYNC // should have been MyApp.SYNC_FETCH

Nothing will happen. Since ojects are hashes, and the language provides zero facilities for constants, our constant with the wrong key will be undefined, and will happily bleed into the callee. This makes stack traces huge.

Callback hell

JS lacks a decent facility for deferreds. It's created for evented execution, which is fundamentally not multithreaded. Your calls are interspersed with event callbacks - when your code is idling, callbacks are executed. However, JS lacks a simple facility for doing this:


var res = await AjaxReq.fetch('/long-request')
// because you are waiting for a result, here the runtime would
// schedule event handling, DOM redraws and whatever else it can 
// squeeze in while you await
res.name // this will be only executed once res is available

Of course the JS community is doing exactly what the PHP community has been doing all along - they try to fix a bad language with even worser tooling. How? By using more callbacks and, on a good day, callback chains

</code>
when(
 // 48 lines of code down
).then(
// 23 lines down
).then()
</code>

In a normal situation this would have been fixed simply by adding a wait primitive to the language which would schedule the events when the result is still being fetched.

The proliferation of callbacks leads to the programming style where everything is async, but as a matter of fact 80 percent of the code you write has to be synchronuous. Simply because 80 percent of the programming is about doing one motherfucking thing with another motherfucking thing and you need both of them to complete the action.

Terrible exception handling

Exception handling in JS is terrible. It exists, but in a rudimentary form - you can see the call stack (that's going to consist of a dozen anonymous functions and one function that is named - that on a good day), and you can see an error message. Since I am not bashing on the DOM, I will only mention two most often encountered errors:


undefined is not a function
cannot call property 'xyz' of undefined

Both of these stem from the fact that fu(ck)bjects in JS have no defined methods - they only have properties. The JS runtime will never have a way to know whether your fubject is supposed to have a method that can be called, or a property of a certain name - it will just assume it being a missing hash key. It just doesn't know any better!

I remember people in the Ruby community complaining about Ruby's backtraces and error messages being not good enough - and Rubinius went to address this. You know where error messages are particularly fucked up? In fucking Javascript. Because the two absolutely basic, crucial exceptions that you want to get and see every single time - NameError (when you are adressing a class-ish or constant-ish something which is not defined) and 'NoMethodError' are simply impossible with the sloppy way the language is built.

And yes, functions are nice, and prototypes are nice and all that - but if you want to build a JS app having any kind of reasonable complexity, you will be bound to write code like this:


var cv = Marionette.CollectionView.extend({
	itemView: MyApp.Views.WidgetView;
});

What is the error that you will get if MyApp.Views.WidgetView is not defined yet? undefined is not a function of course! Where will you get it? When the CollectionView will try to instantiate your item view. Not when you define the variable cv, no no! It will explode later, and rest assured - you will be tearing your hair out for a couple of minutes until you see where the error came from.

And why? Simply because everything is a hash and the language is incapable of doing any kind of introspection.

It absolutely perplexes me that people who have used Ruby are moving to Node and calling it a good tool. Node might be great. The language running in it is shit though, and until this gets at least marginally better I will do without Node just fine, thank you.

I can understand that some people wanted to escape the MRI infrastructure by going Node, because - you know - learning Japanese is hard. If you don't speak Japanese, your chances of making a noticeable improvement in MRI approach zero - you will not be treated nicely.

JS is shit, and if we care at least a tiny bit we should do everything in our power to either sunset it, or to move it into the 'assembler for the web' realm where it would be a vehicle for decent languages that can actually get the job done without driving you up the wall. Being nice will not help it, and CoffeeScript is not radical enough. Support your local transpiler initiative today.

Update: nice to know that I am not alone in this.

Link9 comments|Leave a comment

The emperor’s new clothes were built with Node.js [Nov. 7th, 2021|10:42 am]
[Tags|, ]
[Current Mood | sick]
[Current Music |Lloyd Banks — Hands Up (Feat. 50 Cent)]

Копія видаленого тексту від Eric Jiang „The emperor’s new clothes were built with Node.js“ опублікованого в середу, 4 червня 2014 на https://notes.ericjiang.com/.

There are plenty of people lambasting Node.js (see the infamous “Node.js is cancer”) but proponents tend to misunderstand the message and come up with irrelevant counterpoints. It’s made worse because there are two very different classes of people that use Node.js. The first kind of people are those who need highly concurrent servers that can handle many connections at once: HTTP proxies, Websocket chat servers, etc. The second are those who are so dependent on JavaScript that they need to use JS across their browser, server, database, and laundry machine.

Read more... )
Link4 comments|Leave a comment

Кляті вебщики відбирають в нас знання [Jul. 13th, 2021|10:34 am]
[Tags|, , ]
[Current Mood | disappointed]
[Current Music |Lil' Jon & The East Side Boyz — Dirty Dancin (feat. Oobie)]

Якось замислившись над нетривалістю життя я обурився злочинним тим фактом що значна кількість павутинних вузлів будучи по суті енциклопедіями чи довідниками чи й просто зібранням текстів різного ступеню корисності не має копії представлених матеріалів у вигляді придатному для вжитку і розповсюдженні. Жадібні власники не хочуть ділитися з іншими а хочуть стати заможними та знаменитими за рахунок постійного притоку спраглих до знань відвідувачів. Вони хочуть щоб ми витрачали матеріальні та психічні ресурси на користування їхніми вбогими творіннями. А коли вони підуть в небуття, то заберуть все з собою. Дуже дратує те що навіть автори всіляких програмістських штукенцій часто не переймаються і просто викладають документацію на своїх павутинних вузлах без можливості завантажити її. Причому це не просто декілька HTML–файлів. Частенько це сторіночки наповнені ЯваСценарієм під завʼязку. Яскравий приклад це valadoc.org. Замість того щоб підготувати довідку у вигляді зрозумілому для GNOME Devhelp (тим паче що Vala це мова в першу чергу для полегшення написання програм для GNOME) ми тепер маємо павутинний вузол програмульки на якому, мабуть, нормально працюють лише в Google Chrome. Для цього павутинного вузла були написані програми на PHP та JavaScript а для того щоб запустити все це в себе знадобиться 4 Гб вільного місця на HDD, Node.js, PHP, Sphinx та ще купа програм. От отак щось таке просте як текстові файлики з переліком функцій та їхнім описом перетворюється в штучний виріб, павутинну програму зі своїм власним UI яка дублює вже існуючу програму. Також можна згадати про Sci–Hub який весь такий за свободу, але чомусь доступ до зібраних матеріалів дають лише через формочку у них на головній і ніяк інакше. Немає навіть, наприклад, FTP чи P2P. І взагалі, в мене таке враження що чим більш мудрагельськими стають всілякі там HTML та CSS разом з ЯваСценарієм тим більше закуклюються вебщики заодно перешкоджаючи розповсюдженню та свободі вжитку всього більш–менш корисного ховаючи його за нашаруваннями зі своїх ідіотських технологій.

В Internet explorer 8 не відривається жодна сторінка з https://developer.mozilla.org
Вебщики з MDN не хочуть щоб я вчився. Internet explorer 8 недостатньо для перегляду тексту.

Згадується мені і відомий ag.ru який віднедавна перетворився на щось стильно–модно незрозуміле. А от якби воно існувало у вигляді програми–оболонки для каталогу відеоігор, то зміни були б не такими критичним.

І, накриклад, довідник по HTML на htmlbook.ru. Існуючи у вигляді CHM дані були б доступні й без постійного підключення до Internet (а це значить що не треба запускати прожерливого переглядача який буде мотати електрику виконуючую всіляку AJAX парашу і рекламне гівно), не було б залежності від хостингу і від власників павутинного вузла. Також у випадку з павутинними вузлами подібними до htmlbook.ru довідник облікається в форму програми яку потрібно написати і обслуговувати — я маю на увазі роботу HTTP сервера і павутинні програмульки. Звичайнісінький довідник вже не просто якийсь там CHM файлик а цілий комплекс.

Чим більше ми покладаємося на інформацію розміщену деінде тим вразливішими і залежними ми стаємо. Тож пишіть програми замість сайтиків, видавайте електронні журнали, гнобіть поціновувачів JavaScript і творіть всяке інше добро!

Link10 comments|Leave a comment

Хабрахабр все [Apr. 26th, 2021|03:11 pm]
[Tags|, , ]
[Current Mood | worried]

Ідіоти–явасценаристи зі своїми модними лайнотехнологіями перемогли на Хабрахабрі. Открытый бета-тест новой версии Хабра. Тепер сторіночки будуть завантажуватися довше, стануть важчими, займатимуть більше оперативної памʼяті та перестануть відкриватися в тих більш ранніх павутинних переглядачах в яких вони ще досі відкривалися.

Read more... )
Link7 comments|Leave a comment

Розбір понять WWW [Aug. 27th, 2020|05:22 pm]
[Tags|, , ]
[Current Mood | aggravated]
[Current Music |Bullet for my valentine – Suffocating under words of sorrow]

Місце в Павутині

Web site. Site — місце, вузол. Web може означати павутину, мережу і ве-ве-ве точка ру WWW. Таким чином web site — місце в мережі. Власного слова яке б позначало web site в нас немає. Також немає слова яке б позначало цей самий Web. Була думка для позначення WWW писати слово мережа з великої літери, але Мережа це скоріше про Internet. В Wikipedia в статті про WWW побачив влучне слово всемере́жжя, але воно теж більше личить Internet (хоча, якщо точніше, то Internet це більше міжмережжя). Проте все це не підходить коли потрібно з оцим всемережжям утворити слово яке б позначало павутинного програміста. Щодо мережевого програміста, то воно може позначати не тільки web-макаку а й цілком нормального спеціаліста. На даний момент вважаю що найкраще використовувати конструкції на зразок web-вузол, web-програміст.

Що ж до визначення поняття, то web site is a collection of web pages and related content that is identified by a common domain name and published on at least one web server..

Місце в Павутині як програма

Хочу звернути увагу на те що web site це не програма хоча багато хто має на увазі саме програму (чи уявляє собі якусь програму), коли говорить про web site. Цікаво що заміна іноземного web site на web-вузол відбиває будь-яке бажання писати поряд з ним слово програма. Розмірковуючи так розумієш що web site як програми не існує.

Документи як програми. RIA, SPA, DHTML

Підзабута нині абревіатура RIA та модна SPA по суті представляюють собою одне й теж — мімікрію під нормальні програми в середовищі Всесвітньої павутини (web-переглядача). Не знаю що мали на увазі автори (автор) поняття RIA, але може так бути що мається на увазі Internet взагалі а не лише WWW. Історично RIA це більше про Macromedia Flash, Silverlight від Microsoft, Java applets і подібні речі та той час коли народ не божеволів від webʼних технологій, а так звані односторінкові програми є породженням новітнього часу та розвитку web-переглядачів. Незважаючи на це та на те що SPA базується на рідних для web-переглядача HTML, CSS та JavaScript а не на якихось там сторонніх модулях і нібито стоїть дещо окремо, SPA це все ж таки один з проявів RIA. Односторінковою програмою може називатися навіть HTML документ з єдиною кнопкою по натисненню на яку показується напис Hello, world. Головне щоб без перезавантаження. Абревіатура в якій йдеться про сторінку не зовсім точна. Однодокументна програма — ось точніший термін.

Що таке web-програма?

Вважаю що слід обмежитися визнеченням з Wikipedia в якому написано що web-програма це програма яка виконується web-сервером. Не можна прирівнювати програмульку вписану в HTML файл через тег SCRIPT що маніпулює DOM до web-програми. Цілковитою нісенітницею виглядає визначення web-програми як якоїсь там розподіленої програми між сервером та web-переглядачем.

Link7 comments|Leave a comment

Чому я ненавиджу web–програмування і що мені в ньому не подобається [May. 30th, 2020|11:19 pm]
[Tags|, ]

TL;DR

Якщо коротко, то HTML і CSS створювалися для розмітки і оформлення простих документів а ЯваСценарій це жахлива і по суті єдина мова програмування доступна для «розуміння» броузерам з купою недоліків створена за 10 днів (так навіть в «JavaScript: The Good Parts» написано), яку з усіх боків облизує дуже багато вебщиків які нічого крім JavaScript не бачили, і якщо процес оформлення цього тексту за допомогою HTML і CSS ніяких неприємних відчуттів не викликає, то беручись за створення чогось більш складного (читай, відмінного від статичних текстів) стикаєшся з купою проблем породжених недоліками і спеціалізацією вищеназваних технологій на тексті, на документах. Значна частина так званого web–програмування це зборище хаків тому що якщо тобі потрібно створити щось відмінне від не складного інтерактивного документу, то інакше просто ніяк, тому що, як я вже вище писав, технології WWW призначалися для зовсім іншого. 90% людей зайнятих створенням web–сайтів це погані малокваліфіковані програмісти і цілком можливо що любов до JavaScript є наслідком неосиляторства, вузького кругозору, низького рівня проф. придатності і синдрому каченяти.

Якщо тобі дійсно подобається програмування, я раджу не йти в сайтобудівельники.

Мені прикро це казати, але якби я наймав програмістів, то я б віддавав перевагу людям не замараним сайтобудівництвом і для вебщиків проводив би додаткове тестування.

Read more... )
Link1 comment|Leave a comment

Причина популярності web–програмування [May. 30th, 2020|11:19 pm]
[Tags|, ]

Гадаю я відкрию страшну таємницю для багатьох вебщиків, але причина популярності Web`у не у п…сті технологій і не в тому що JavaScript і HTML це найкращі в світі мови програмування і не в тому що CSS це божественна технологія і крім CSS нічого кращого не існує. На мою думку дві (взагалі то причина одна: бабло) основні причини полягають в тому що WWW нагадує базар і газети-журнали. З того що WWW це такий собі величезний базар з газетними кіосками випливає те що на ньому можна доволі легко заробляти гроші. Гроші, як і в багатьох друкованих виданнях, заробляються за допомогою реклами (явної або не дуже). І як на базарі товар розкладають на прилавках так і в WWW його демонструють в каталогах на сторінках сайтів. Саме можливість легко продавати і заробляти гроші є основною причиною розповсюдженості вебопрограмування. Сьогодні вебщик робить інтерактивний рекламний буклет на 4 екрани  для того щоб який–небудь комерс міг продавати червоні нитки (якби цей буклет був зроблений у вигляді програми, його б ніхто ніколи не побачив але, існуючи в світі документів WWW, він індексується пошуковиками, показується в пошуковій видачі і приносить прибуток) а завтра пакує свій жуквері код в Chrome і всі користуються супер–пупер революційною програмою Дускорд з мемасиками і ботами що керуються штучним інтелектом з підвалів Пентагону.


Важко собі уявити щоб при використанні архіватору, файлового менеджеру, калькулятору чи програми для роботи з розділами HDD користувачам показували рекламу а от при перегляді web-ресурсів це звична справа. Юзер лазить по web–вузлам завантажуючи документ за документом, сторінку за сторінкою. Часто без якоїсь чітко визначеної мети, просто шукаючи щось цікавеньке. На базарі тебе можуть зазивати покуштувати їхнє чудове сало а от в WWW на тебе з усіх боків посиплеться реклама у вигляді блимаючих  картинок, відео про те який президент хороший або поганий, тексту з обіцянками збільшити пісюн на 10 сантиметрів і т.д. Сторінки на web–вузлах частенько являють собою каталоги з товарами, відео і аудіофайлами і всіляким іншим вмістом газетно–журнального типу на зразок новин, оглядів, кумедних картинок, блогів, кулінарних рецептів і т.д. Ти будеш шукати інформацію про те що такого цікавого можна зробити з лампами розжарювання а потрапиш на стоірнку internet–магазину з сувенірами і дизайнерськими меблями. В такому середовищі дуже легко не тільки продавати щось і показувати рекламу а ще й збирати дані про всіх і вся, шпигувати і слідкувати для щоб потім заробляти на цьому ще більше. Схожість з поліграфічною продукціює проявляється не тільки в наповненні а ще й в зовнішньо вигляді: структура, увага до шрифтів, стилізація звичних елементів GUI під щось незвичне і глянцево–блискуче і щоб не таке як в інших. Якби не існувало WWW в світі було б набагато менше різноманітного інформаційного сміття.

LinkLeave a comment

Якими мають бути сайтики [May. 30th, 2020|11:09 pm]
[Tags|, ]
[Current Mood | hopeful]

Якомога менше JavaScript


Більшість сторінок в WWW можуть прекрасно обійтися без JavaScript. JavaScript це додаткові дані які потрібно завантажити а потім витратити час та машинні ресурси на їх обробку. З увімкненим JavaSciprt olx.ua завантажується за 8,30 секунд а з вимкненим за 1,74 секунди; також сторінка прокручується швидше. На JavaScript припадає 1,2 МіБ від загальної кількості переданих даних в 2 МіБ. Більшість з того що воно там завантажило не потрібно нікому окрім Google.


mdeium.com. 4,7 секунди на завантаження. 491 Кіб з 644 Кіб даних це всілякі реакти і редукси (тобто програми на JavaScript). І все для чого? Для того щоб показати декілька абзаців тексту про те що Medium не такий як всі інші. Співвідношення шуму та корисної інформації просто вражає. Хочеться почитати не рекламний текст на головній, а статтю? То приготуйся завантажити 1896,69 Кіб коду незрозуміло яких програм. Більшість з того для чого призначені всі ці програмки можна зробити на боці сервера віддавши сторінку з мінімумом необхідних скриптів. Але хіба це модно? Хіба по сучасному? Ні!


Варто завжди пам'ятати що


  • JavaScript сповільнює перегляд та завантаження web-документів. Якби не JavaScript, то сайтики на всіляких Lenovo, SAMSUNG`ах, iPhone`ах та інших UleFone відкривалися б моментально.

  • Фарширування web-документів JavaScript'ом утискає власників не зовсім нових девайсів.

  • Виконання JavaScript-програм дуже енергозатратне і збільшує рахунок за електрику. Тобто ми всі платимо за JavaScript.

  • Саме за допомогою JavaScript web-макаки роблять всілякі ідіотські штуки на зразок прихованих коментарів для перегляду яких треба натиснути кнопку, форми для відправки яких потрібен JavaScript, поле пошуку для активації якого доводиться додатково натискати на піктограму або кнопку для того щоб воно вилізло з яким-небудь (неоригінальним) ефектом (оргазми кожного разу коли бачу цю срану анімацію). Таке роблять навіть тоді, коли місця вистачає хоч на 10 таких полів. Не забуваймо про новинні сайтики з текстами які не працюють без мегабайту скриптів, а з вимкненим JavaScript все що можна на таких почитати це заглушки у вигляді смужок для тексту та інших елементів сторінки які мали б завантажуватися тими самим скриптами. Хочеться згадати ще й про безкінечну прокрутку і кнопки «завантажити ще».

  • Якщо в тебе вкрали гроші під час використання банківського сайтику чи заразили вірусам, то це JavaScript.

  • Мегабайти JavaScript це в першу чергу для зручності web-програмістів а не якихось ефемерних користувачів. Додаючи черговий двохсоткілобайтний файлик web-макака піклується лише про себе — напружуватися якомога менше, зробити якомога більше.

  • Вебщиків позбавили Flash і тегу blink, але залишили їм JavaScript для того щоб вони робили блимаючі баннери.

Мої слова також підтверджує Klint Finley в статті I Turned Off JavaScript for a Whole Week and It Was Glorious. Цитата: Pages loaded nearly instantly, my laptop battery lasted longer, and I could browse the web with fewer distractions… Закликаю всіх хто це читає слідувати моєму прикладу і вимкнути JavaScript!


Припинити мімікрувати під програми


Як всі прекрасно знають HTML + CSS + JavaScript як програмна платформа повний відстій. Всі ці SPA які намагаються бути як справжні програми нормальних людей ідуть проти природи WWW. Хочеться писати програми як дорослі хлопчики? Вчи Qt, Flash чи Silverlight.


Бути читабельними


Ідіотська мода останніх років на сірий текст дрібним шрифтом на білому фоні це, блять, погано. Погано тому що не у всіх хороший зір, якісні монітори і просто-напросто перегляд такого низькоконтрастного поєднання темно-сірого зі світло-сірим потребує більше зусиль. Маю на увазі не лише текст як в книжці а й різномантні кнопки та інші елементи GUI. Подібні стилістичні рішення мають право на життя, але лише там де це дійсно потрібно. Що цікаво навіть традиційно сині URL перефарбовують в сірий. Було б ідеально якби web-макаки менше лізли до шрифтів віддаючи остаточне рішення про розмір і колір web-переглядачу користувача: віддавали б перевагу відносними одиницями виміру замість абсолютних, більше покладалися б на на larger, slmaller, x-small та інші подібні значення font-size і слідкували за рівнем контрастності.

How the Web Became Unreadable

Підтримувати попередні версії web-переглядачів


Нині більшість web-переглядачів оновлюються ледь не щодня і вебщики перестали звертати увагу на щось старіше за передостанню версію Хромога. Сайтик який ще декілька місяців тому без проблем працював в несвіжій версії Firefox або Opera перестає функціонувати бо web-макака прибирає старі костилі чи міняє їх на нові. Окрім незручностей ці зміни нічого користувачам не дають.


В цілому хочеться щоб WWW залишався зборищем саме документів а не документів які намагаються бути як програми. Документів доступних як з Nokia 6300 так і з сучасного ПеКа. Щоб форма відправки чого б то не було залишалася просто формою відправки. Щоб WWW ставав семантичним та насичувався метаданими. Щоб нормлаьні програми не замінювалися скриптами на HTML сторінці. Чуваки, заспокойтесь — це лише документи.

Link5 comments|Leave a comment

Чому web-макакам так подобається обмазуватися JavaScript [May. 30th, 2020|11:08 pm]
[Tags|, ]

Навіть не стільки JavaScript скільки різноманітним бібліотеками та framework'ами. Живемо ми в такий час коли сторіночка без Angular, Vue, React, Ember, Polymer, Meteor, Typescript і всякого такого серед сайтописак часто сприймається як щось погане, немодне, зашкварне. Вони полюбляють використовувати якусь неймовірно корисну (наспрадві ні) і дуже популярну бібліотечку навіть якщо можна спокійно без цього обійтися і не перевантажувати сторінку зайвими даними. Не так давно сайтобудівельники в масі своїй були скромнішими задовільняючись jQuery, Mootools, YUI і чужими кривуватими напрацюваннями знайденими на просторах Internet, а про щось серйозніше знало 3,5 найбільш метикуватих особин з всієї популяції.

Read more... )
Link1 comment|Leave a comment

Презирство до jQuery [May. 30th, 2020|11:07 pm]
[Tags|, ]

Нещодавно jQuery це було єдиине що знало і що використовувало 99% вебщиків. Але якийсь час тому фокус змістився з цієї божественної бібліотеки на framework'и (або принаймні вони стали новою гарячою темою) і jQuery, по суті і нині залишаючись невідʼємною частиною вебопрограмування, заліг в темних глибинах підсвідомості сайтописак. Вивчивши React з Redux типовий вебопрограміст починає зверхньо дивитися і на jQuery і на тих хто jQuery користується. Така поведінка пояснюється дуже просто. І виникає вона через бажання самоствердитися принижуючи інших та через те що web-програміст вважає що він піднявся вище — я став суперспеціалістом, я став кращим, а ти гівно. Не jQuery єдиним, але питання в іншому. Чи сайтописака який перейшов на який-небудь популярний (а в основному тільки на таке і переходять) framework дійсно став кращим? Звісно ж ні. Тому що все що сталося це просто зміна інструменту. Інструменту для якого потрібні нові знання. От і все. Він не здійснив якогось еволюційного стрибку. Це як поміняти молоток на станок або на магічний молоток що керується заклинаннями.

Link2 comments|Leave a comment

Черговий курйоз вебщиків [May. 30th, 2020|11:02 pm]
[Tags|, ]
[Current Mood | hopeful]

В памʼять про сумнозвісний випадок видалення зі сховища пакетів Node.js програмки left-pad на 11 рядків коду від Azer Koçulu вебщики нещодавно повторили свій подвиг. Прошу вітати is-promise. Is-promise це функція що скдається одного рядку коду:

function isPromise(obj) { return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';}

Як пише codeguida.com від is-promise залежить 766 інших бібліотек і даний модуль застосовують у 3,4 млн репозиторіїв. Після оновлення is-promise у всіх цих проектів несподівано почалися проблеми.

Процеси не зупинились повністю, однак розробники не могли скомпілювати нові версії своїх проєктів. Команда бібліотеки випустила оновлення, та проблема не зникла, тож підтримку ES-модулів повернули до версії 2.2.2.

Дворядковий npm-пакет порушив роботу екосистеми JavaScript.

LinkLeave a comment

navigation
[ viewing | most recent entries ]