LINUX.ORG.RU
ФорумTalks

О печальном состоянии веб-программирования

 , ,


1

1

Столкнулся с проектом Vue+Symfony+GitLab. Я не понимаю кому выгодны эти запутанные инструменты, веб-фреймворки, это безумное усложнение? Но больше всего не понимаю, как это можно любить.

Критикуешь - предлагай альтернативу. И так, все предыдущие 3 года я просто мог работать, если не попадался такой вот мусор! Я подключал удаленную FTP папку в Windows 10, и редактировал файлы через notepad.exe, с тех пор как он научился в кодировки я даже не использовал Notepad++. Если сайт посещаемый, и не нужно было экспериментировать над пользователями, я делал из page.php копию page2.php и редактировал код там. Frontend? Есть JQuery и куча плагинов, скачиваешь min файл и копируешь себе в папку, вот и вся сборка.

Теперь же перейдем к моему текущему проекту. Vue, эта штука просто отбирает контроль за происходящим, как на этом сделать что то нормальное я не представляю, не удивительно что современные веб-приложения еле работают, а в IE или PaleMoon не запускаются вообще. Ну ладно, там и проект не сложный, с ограничениями я воевал всего лишь неделю... Но эти бесконечные сборки, я не против сборки, но оно же компилируется медленнее плюсов, зачем же так издеваться?! Такое и даром не нужно!

Symfony, ну явно для любителей Java штука, программирование на текстовых конфигах присутствует. А вот какой смысл делать yml/json/xml когда есть config.php? Это же скриптовый язык, зачем так извращаться?! В остальном это просто ад, даже описывать не буду, для простейших действий требуется 100500 часов, и классы, классы, классы. И шаблоны, как будто бы PHP плохой шаблонизатор. Видимо реально это делалось для Java, а потом конвертором перегнали в PHP.

GitLab, Git - отличные замедлители разработки, как и системы сборки фронтенда, я кажется близко к разгадке, программисты на скриптовых языках завидовали плюсовикам, у них проект пока скомпилируется, можно 20 чашек кофе выпить, вот и продвинули это. Git - ну просто каргокульт, пришлось однако ставить это жирное нечто на десятку, отъело пол гига!!! GitLab - поприкольнее, поинтереснее, просто так коммитить нельзя, ветка ограниченна, нужно обязательно попросить разрешение управлящего, это же так круто! Если вы не доверяете мне, зачем просить что то делать? Потом еще начинается «а разбейте на коммиты, слишком много изменений»...

А вам это нравится, почему? Вы задумываетесь над тем что вы делаете? И как это делаете?

★★★★

Последнее исправление: MOPKOBKA (всего исправлений: 1)

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

Opera Mini ещё не забудьте, там на транскодерах до сих пор движок Presto используется.

И Netsurf/Elinks/links2/w3m.

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

А зачем дискриминировать его пользователей?

Да и HTA-приложения используют системный движок IE. Мы вот на Windows XP под движок IE7 недавно писали лаунчер для гостей, косящий под метро. Рабочие столы эти ваши ретроградские — для зумерков слишком сложно, да и залезть могут, куда не надо. Даже тот факт, что на вантузе, в отличие от ведроида, может запускаться несколько экземпляров программы, если ткнуть на иконку несколько раз подряд — повергает в недоумение ;D

<head>
<title>NoobShell</title>
<HTA:APPLICATION ID="oHTA"
APPLICATIONNAME="NoobShell"
BORDER="none"
BORDERSTYLE="normal"
CAPTION="no"
innerBorder="no"
maximizeButton="no"
minimizeButton="no"
SHOWINTASKBAR="no"
SINGLEINSTANCE="yes"
SYSMENU="no"
VERSION="1.0"
WINDOWSTATE="maximize"
scroll='no'
contextmenu='no'
NAVIGABLE='no'>
<script>
DOS='d:\\progra~1\\dos\\';
PORTABLE='d:\\progra~1\\portable\\';
GAMES='d:\\Games\\';
JAVA='c:\\progra~1\\java\\jre7\\bin\\java.exe';
function run(a) {
 (new ActiveXObject('WScript.Shell')).Run(a,3);
}
function dos(path,file) {
 var DOSBOX='d:\\progra~1\\dosbox-0.74\\dosbox.exe';
 run(DOSBOX+' -c "'+path.substr(0,2)+'" -c "cd '+path+'" -c "'+file+'"');
}
function unlock() {
 document.getElementById('hidden').style.display='inline';
}
function _keepIndex(elem, newSet) {
 var i=0;
 while (elem.previousSibling) {
  elem=elem.previousSibling;
  i++;
 }
 return newSet[i >= newSet.length ? newSet.length-1 : i];
}
function kbd() {
 var active = document.getElementById('activeKafel');
 if (event.keyCode <= 40 && event.keyCode > 36)
  active.id = undefined;
 switch(event.keyCode) {
  case 13:
   active.fireEvent('onclick');
  break;
  case 37:
   _keepIndex(active, (active.parentNode.previousSibling || active.parentNode.parentNode.lastChild).childNodes).id = 'activeKafel';
  break;
  case 38:
   (active.previousSibling || active.parentNode.lastChild).id = 'activeKafel';
  break;
  case 39:
   _keepIndex(active, (active.parentNode.nextSibling || active.parentNode.parentNode.firstChild).childNodes).id = 'activeKafel';
  break;
  case 40:
   (active.nextSibling || active.parentNode.firstChild).id = 'activeKafel';
  break;
 }
}
function init() {
 run(DOS+"..\\Volume2\\Volume2.exe");
}
</script>
<style type="text/css">
body {
 font-family: "Segoe UI",sans;
 padding-left: 158px;
}
h1 {
 display: block;
 height: 250px;
 padding-top: 60px;
 font: normal 44pt;
 color: #fff;
}
.kafelgroup {
 display: inline;
 height: 323px;
 vertical-align: top;
}
a.kafel {
 display: block;
 width: 103px;
 height: 103px;
 color: #fff;
 padding: 3px;
 text-decoration: none;
 margin: 0 7px 7px 0;
 font-size: 12px;
 border: solid 1px transparent;
}
#activeKafel {
 border-color: #0ff;
 filter: progid:DXImageTransform.Microsoft.BasicImage(invert=1);
}
a.kafel:hover, #activeKafel:hover {
 filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.98, M12=-0.02, M21=0.02, M22=0.98, Dx=2, Dy=2, FilterType="nearest neighbor");
}
.kafel img {
 width: 80px;
 height: 80px;
 border: 0;
 display: block;
 margin: 0 10px;
}
a.kafel05 {
 width: 48px;
 height: 48px;
}
.kafel05 img {
 width: 36px;
 height: 36px;
}
h1 .kafel {
 float: right;
}
#hidden {
 display: none;
}
#unlocker {
 position: absolute;
 height: 1px;
 bottom: 0;
 width: 100%;
}
</style>
</head>
<body style="background-color: #0F6D39" onload='init()' onkeydown='kbd()'>
<h1>
 Start
 <a class="kafel kafel05" style='background-color: #a00000' href="#" onclick="run('shutdown.exe /l')">
  <img src="icons/gnome-session-hibernate.png"/>
  Logout
 </a>
</h1>
<div class="kafelfield">
 <div class="kafelgroup">
  <a class="kafel" id="activeKafel" style='background-color: #fff; color: #000' href="#" onclick="run('launcher\\POP.LNK')">
   <img src="icons/pop.ico"/>
   ЛОШАРИК
  </a>
  <a class="kafel" style='background-color: #8d2eea' href="#" onclick="run(PORTABLE+'minetest-0.4.6\\bin\\minetest.exe')">
   <img src="icons/minetest.ico"/>
   Minetest
  </a>
  <a class="kafel" style='background-color: #00f' href="#" onclick="dos(DOS+'supaplex','supaplex.exe')">
   <img src="icons/SupIcon.ico"/>
   SUPAPLEX
  </a>
  <a class="kafel" style='background-color: #900000' href="#" onclick="run('launcher\\IHaveNoTomatoes.lnk')">
   <img src="icons/tomatoes.ico"/>
   Tomatoes
  </a>
 </div>
 <div class="kafelgroup">
  <a class="kafel" style='background-color: #808000' href="#" onclick="run(GAMES+'бильярд\\Billiard.exe')">
   <img src="icons/billiard.ico"/>
   Бильярд
  </a>
  <a class="kafel" style='background-color: #00611c' href="#" onclick="run(JAVA+' -jar '+PORTABLE+'PataPony\\binary.jar')">
   <img src="icons/pon.png"/>
   PataPony
  </a>
  <a class="kafel" style='background-color: #58d5d5; color: #000' href="#" onclick="run(PORTABLE+'supertuxkart-0.9-win32-mingw\\supertuxkart.exe')">
   <img src="icons/stk.png"/>
   SuperTuxKart
  </a>
  <a class="kafel" style='background-color: #00557c; color: #fff' href="#" onclick="run('launcher\\sused.lnk')">
   <img src="icons/sused.ico"/>
   сУсед
  </a>
  <a class="kafel" style='background-color: #4293c5; color: #fff' href="#" onclick="run(DOS+'..\\McPixel\\McPixel.exe')">
   <img src="icons/mcpixel.ico"/>
   McPixel
  </a>
 </div>
 <div class="kafelgroup">
  <a class="kafel" style='background-color: #ffc347; color: #000' href="#" onclick="run(DOS+'sprinw_r\\SWEEKEND.EXE')">
   <img src="icons/sweekend.png"/>
   SWEEKEND
  </a>
  <a class="kafel" style='background-color: #00f' href="#" onclick="dos(DOS+'ROB_LAND','START.BAT')">
   <img src="icons/robland.ico"/>
   Роботляндия
  </a>
  <a class="kafel" style='background-color: #000; color: #fff' href="#" onclick="run(DOS+'BALDA98\\BALDA.EXE')">
   <img src="icons/balda.ico"/>
   BALDA98
  </a>
  <a class="kafel" style='background-color: #fff; color: #000' href="#" onclick="run(DOS+'Zeek\\ZEEK1.EXE')">
   <img src="icons/zeek.ico"/>
   ZEEK
  </a>
  <a class="kafel" style='background-color: #20e2de; color: #000' href="#" onclick="run(PORTABLE+'Q\\Q.EXE')">
   <img src="icons/q.ico"/>
   Q
  </a>
 </div>
 <div class="kafelgroup">
  <a class="kafel" style='background-color: #000' href="#" onclick="run(PORTABLE+'DubBox\\dubbox.lnk')">
   <img src="icons/dubbox_3.bmp"/>
   DubBox
  </a>
  <a class="kafel" style='background-color: #0bb0b1' href="#" onclick="run(PORTABLE+'..\\sunvox\\sunvox\\win32\\sunvox.exe')">
   <img src="icons/sunvox.ico"/>
   SunVox
  </a>
 </div>
 <div class="kafelgroup">
  <a class="kafel" style='background-color: #c0c0c0; color: #000' href="#" onclick="run('mspaint')">
   <img src="icons/paint.png"/>
    Paint
  </a>
  <a class="kafel" style='background-color: #c0c0c0; color: #000' href="#" onclick="run('d:\\downloads\\progs\\bin\\flash\\risovan\\start.exe')">
   <img src=""/>
   МАЛЮВАННЯ
  </a>
 </div>
 <div class="kafelgroup">
  <a class="kafel" style='background-color: #d5cab0; color: #000' href="#" onclick="run(DOS+'..\\XBMC\\XBMC.exe')">
   <img src="icons/xbmc.png"/>
   XBMC
  </a>
 </div>
 <div class="kafelgroup" id="hidden">
  <a class="kafel" style='background-color: #00f' href="#" onclick="run(DOS+'..\\vmware\\vmware~1\\vmplayer.exe')">
   <img src="icons/vmware.ico"/>
   VmWare Player
  </a>
 </div>
</div>
<div id="unlocker" ondblclick='unlock();'>
</div>
</body>
mertvoprog
()
Ответ на: комментарий от Spoofing

переключаются между окнами

Вы не осилили сворачивание Vim по Ctrl+Z? Или тоже перемапили на что-то другое и страдаете?

Плюс есть плагины, чтобы интегрировать Git прямо в Vim. fugitive, например, нахваливают; сами не пробовали, ибо не видим нужды.

$RANDOM

Git рассчитан на вдумчивое составление атомарных изменений, в которых впоследствии просто разобраться, потому и требует столько «лишних» телодвижений (на самом деле во всём процессе описания правки это мелочь).

У Вас задача другая — тупо автоматически сохранять всю историю правок, как это делает Google Docs. Git для такого, в принципе, присобачить вполне можно, но это извращение и неэффективно. Лучше сделать что-то специально под эту задачу (если ещё нету, ага).

Кстати, @MOPKOBKA, @metaprog, возьмите на заметку, как можно сделать СКВ для людей. Делаете большой горизонтальный ползунок таймлайна, типа как на web.archive.org; его можно двигать, и о чудо — диагармма на глазах эволюционирует, растёт и видоизменяется. (Производительности вряд ли хватит настоящую диагармму быстро рендерить, лучше сохранять превью). Можно конкретные состояния в любое время фиксировать и назначать метки (см. комментарии к трекам на SoundCloud): получится гибрид СКВ в классическом понимании и полной истории атомарных изменений, который вообще перевернёт представление об СКВ. Причём это есть и в Git (теги), но там иной уровень абстракции, повыше.

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

Кстати, @MOPKOBKA, @metaprog, возьмите на заметку, как можно сделать СКВ для людей

У меня такое уже в планах.

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

Люди которые не любят веб странные в большинстве, думают что Chrome тормозной браузер, хотя пишется хорошо, и отличными программистами

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

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

Причём это приближение к истокам. Вот взять ed, например. Вся работа по редактированию сводится к последовательности атомарных команд, куда более компактных, чем diff’ы. Эти команды можно отдельно записать, воспроизвести над исходным файлом — и получить ровно такой же отредактированный файл. Vim в целом сохраняет эту концепцию, в нём тоже редактирование сводится к атомарным операциям, которые можно записывать в текстовые макросы.

Вам куда проще будет создать готовый продукт: не нужно интегрироваться с существующим зоопарком готовых редакторов и IDE, мониторить в них правки, изменения в ФС. Есть только один расово верный Метапрог, тесно интегрированный с Метапрог.Онлайн; это непаханное поле, голубой океан — и это прекрасно, можно смело реализовывать самые бредовые революционные идеи.

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

Если ты про php, то там opcache же, разницы особой не будет.

Лечение поноса затыканием жопы. Спорим о цвете затычки :))

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

современный веб невозможно быстро выполнять

Как раз его и можно.

Шоустопперы:

  1. легаси-костыли для старого веба;

  2. анальная модель безопасности хромога.

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

Да, ну это можно сказать очевидная идея.

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

Тормоза исходят от веба, а не от браузера. Антивеберы то предлагают часто взять и написать новый браузер, и что бы его писали настоящие программисты! А не вот эти из гугла.

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

Тормоза исходят от веба, а не от браузера.

тормоза исходят от веб-программистов

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

переключаются на другие окна

А в чём проблема-то?

Вы там, может, ещё и от переключения раскладки страдаете, потому что лезете для этого мышкой к трею через весь огромный 27''-й монитор?

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

Кто автоматизирует? Нужен единый стандарт, вебмастерам нафиг не упало завязываться на одном хостинге. И на техномартыханах, чтобы управлять сайтом — тоже.

Вот для AWS, допустим, уже появились drop-in replacement, ибо популярно. Но там ниша чуть другая.

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

На Android, что ли, портировать? Давно пора, после смерти Opera Presto и закапывания Android Browser там очень не хватает альтернативных браузерных движков! Хоть их и всё ещё на один больше, чем на iOS/KaiOS, ага.

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

Для гита до сих пор морду толковую для людей не сделали даже, Вы о чём вообще?

Мы вот, что характерно, начали пользоваться GitHub лет 9 назад с гуёвого клиента, ещё до того, как осилили консольный git. И он уже тогда тащил дотнетфрумжорки непонятных версий и вообще ставился через пень-колоду. Тёртвайсы всякие вообще страшные. Интеграцию во всякие IDE ещё можно назвать приличной — но вебмастера-то этим пользоваться не будут, им заливать надо, а не редактировать, редактировать толком не умеют.

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

Ну так у Нас тоже ничё толком не стоит и и трёх гигов не весит. Особенно когда rustc/cargo оттуда выкинули и накатили вместо этого через rustup. И это при том, что постоянно чистим (на что тоже нужно дополнительное место — для манёвров).

А если что-то толковое накатить, LAMP хотя бы банальный, или даже TigerVNC+Openbox какой-нить по минимуму?

У бедиана-то голая система меньше гига весит — есть с чем сравнивать. И экспоненциального взрыва дископотребления при обмазывании толковым не наблюдается, потому что зависимости дедуплицированы по максимуму.

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

мертво

Вы так сказали?

Интересно, как вообще пересчитать пользователей IE, когда их тупо в интернеты уже почти не пускают из-за TLS≥1.2-фашизма, и приходится страдать с говнобраузерами, проксями или страдать в оффлайне? То же самое касается любых прочих некробраузеров, которые как-то резко взяли и повылетали из статистик.

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

Ви таки лоббируете бюро ритуальных услуг?

А ви IE спросили, может, он кремироваться хочет, или студентам на опыты?

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

Короче, я к тому, что, back of the envelope, 3 лишних гига * пусть 10к пользователей NixOS * пусть аж от души 100 инсталляций на человека = сверхприбыли масштаба моей годовой зарплаты где-то? Золотая жила просто.

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

А зачем их не дискриминировать? Этот браузер был говном еще когда был актуален, даже вантузятники в массе им не пользовались. Ну и вообще, следует дискриминировать пользователей всех проприетарных браузеров без исключения.

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

пересчитать пользователей IE, Пользователи люди простые, что им МС подсунут, тем и пользуются. В последнее время подсовывают хромоподобное изделие, так что ИЕ на оригинальном движке и не осталось.

То же самое касается любых прочих некробраузеров, которые как-то резко взяли и повылетали из статистик.

Ими можно и нужно пренебречь .

Подведем итог - JQuery не нужен

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

а кого должны нагружать тяжелые веб приложения?

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

3 лишних гига

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

10к пользователей

Рыночек в одночасье не захватывается.

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

Этот браузер был говном еще когда был актуален

WUT? В нём революционные возможности были ещё в конце 90-х, которые в прочие браузеры подъехали лет через 10 в виде стандартов CSS3. А некоторые до сих пор подъезжают, Мы вот про доступ к ФС видео пилили: лишь недавно в хромог что-то подобное подвезли, и то пределами директории ограничено.

даже вантузятники в массе им не пользовались

Миллионы мух не могут ошибаться, да.

следует дискриминировать пользователей всех проприетарных браузеров без исключения

Даже Flow?

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

Выучат пару команд

Ещё чего нафантазируете?

Юзвери свойства ярлыка отредактировать толком не могут, а Вы ассумите, что CLI вдруг осилят.

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

По мне так это опасная и ненужная хрень. Дыра. «Давайте спросим разные разрешения у юзера и за него-же программно сами себе их разрешим?». Или я что-то недогоняю?

rechnick ★★★
()
Ответ на: комментарий от cvs-255

Они и так охренели рекламу показывать. Если уж заработанного не хватило ни на подсветку синтаксиса, ни на ее кеш, то это совсем дно.

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

Какие еще революционные фичи в осле? Мы про одного говорим вообще, интернет эксплорер, встроенный в старые 32 битные венды? По ссылке не пойду, давай вкраце,что за неуважение к Ъ.

Dog ★★★
()

Я для себя решил и успокоился тем, что это всё - результат стремления к унификации и заменяемости рабочих кадров. Просто хозяину проекта удобно, когда исполнителей можно легко и непринужденно менять. Поэтому единообразие в инструментах и шоры на глаза.

Иначе разброд и шатание. Вам - FTP, мне - sshfs, третьему - samba. Зачем хозяину подстраиваться под исполнителей, если можно исполнителей подстроить под единую гребёнку и форсить её как панацею?

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

их тупо в интернеты уже почти не пускают из-за TLS≥1.2-фашизма

Кстати он включается в настройках самого IE, но на Win7, TLS1.2/1.3 по умолчанию отключены. На Win10 TLS1.2 включен из коробки, но на счет 1.3 не уверен.

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