LINUX.ORG.RU
ФорумTalks

Почему web так убог?

 , ,


1

2

Собственно давно задавался этим вопросом. Я сам последнее время работаю с вэбом и почти каждый день спрашиваю себя - почему здесь всё настолько криво. Почему спросил сейчас? Вот сижу и пишу стопяцотый велосипед который сделает удобным вывод форм на страничку избавив от всего этого хлама типа select, textarea, checkbox(value) и прочего сказочного поноса. Конечно пишу на пыхе потому что целевой фреймворк, как и подавляющее большинство, на пыхе. И тут вот такая тема - Python или PHP, или вообще Pascal?

Невольно задаешься вопросом, почему все эти люди которые создали всякие html, php, css и прочие js (возможно к последнему притензии мои и зря), смогли вывести это в мэйнстрим? Почему мэйнстримом де-факто стали настолько убогие и кривые стандарты и технологии?

P.S.
Мнения тех, кто считает что все нормально и не видит глобального ада, не очень интересно. Интересно именно чем думали создатели этого.

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

А запятая тут при чём?

обычно лишняя запятая даёт NULL - потом, если пытаешься обратиться, ожидая объект - получишь примерно сходную ошибку.

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

Гм. Это проблемы языка, а не запятой. В перле можно хоть десять запятых в конце поставить, ни одной проблемы не будет.

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

100% бывшие пыхеры.

У тебя комплексы. Запущенные. Остаётся только догадываться, что с тобой злые пыхеры сделали…

Кстати, твои злые пыхеры даже на python.org уже проникли:

http://www.python.org/scripts/ht2html/Sidebar.py

Поднимай восстание, пора ряды чистить!

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

обычно лишняя запятая даёт NULL

В PHP такого нет. В других языках, либо тоже нет, либо запятая вызывает синтаксическую ошибку.

Можешь привести пример языка, где лишняя запятая порождает NULL? (а если он при этом ещё и «Fatal error: Call to a member function on a non-object» пишет — вообще будет хорошо).

$ php -r 'var_dump([1,2,3,]);'
array(3) {
  [0] =>
  int(1)
  [1] =>
  int(2)
  [2] =>
  int(3)
}

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

Вместо того чтобы раскаяться в том, что он годами производит говно, он на других пальцем показывает - а они тоже говнюки, значит я не хуже!
</center> у них. <font color='%s'> у них. И всё это посреди программного кода.

Мало вас Луговский давил, мало!

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

Уже ответил на сходный вопрос. Почему web так убог? (комментарий)

К сожалению периодически натыкаюсь на эти грабли, но после того как прикрутил flymake - стало крайне редко.

Почему я за 10 лет такого никогда не видел? :D

вангую - Наверное не используешь все возможности языка :) Хотя, консерватизм это в разумных пределах хорошо и полезно вычислять радиус земли не сходя с места.

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

либо тоже нет, либо запятая вызывает синтаксическую ошибку

Я могу себе представить. Если идёт не список, а перечисление. Выражение фактически. И последнее выражение, после запятой, вычисляется в undef. И всё выражение вычисляется в undef.
Но это какой-то упорин, если честно.

Xellos ★★★★★
()
Ответ на: комментарий от KRoN73
php -a
Interactive shell

php > 
php > $a = [1,2,3];
php > var_export($a);
array (
  0 => 1,
  1 => 2,
  2 => 3,
)php > 

Можешь привести пример языка, где лишняя запятая порождает NULL? (а если он при этом ещё и «Fatal error: Call to a member function on a non-object» пишет — вообще будет хорошо).

на вскидку сейчас не вспомню - если найду - стукнусь

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

Уже ответил на сходный вопрос

Я там потом задал вопрос, как такое получить?

вангую - Наверное не используешь все возможности языка :)

Приведи пример кода, в котором лишняя запятая в массиве даёт NULL.

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

var_export($a);

И что? Какое это отношение имеет к NULL от запятой?

на вскидку сейчас не вспомню - если найду - стукнусь

Вот найдёшь — напиши. Потому что что-то мне подсказывает, что ты что-то путаешь :)

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

Приведи пример кода, в котором лишняя запятая в массиве даёт NULL.

надо вспомнить - сразу и быстро не обещаю, но была проблема.

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

Потому что что-то мне подсказывает, что ты что-то путаешь :)

возможно, приступ паранойи... :)

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

эта ошибка с NULL была при использовании var_export кажется. Сейчас точно не вспомню уже, но было из-за лишней запятой.

Может, результат куда-то в другую систему скармливал?

KRoN73 ★★★★★
()

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

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

Может, результат куда-то в другую систему скармливал?

вполне возможно. Начинаю кажется вспоминать: я брал var_export, потом парсил этот кусок кода через ",\n "-разделитель+explode получал список аргументов, в которых естественно был кусок дающий NULL. Потом отказался от этой схемы (относительно давно это было). Но с тех пор избегаю лишней запятой. Хотя в принципе это безобидно, кроме неоднозначностей при разборе.

Благодарю.

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

Ну давай же, порекомендуй нам нормальные языки для вэба. С батарейками и готовыми решениями в виде фреймворков и CMS Может мы сменим ориентацию и займемся делом.

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

python, ruby, javascript (под нодой), для ынтерпрайза никто не отменял весь зоопарк языков под jvm и clr, 21 век на дворе, ау!

mix_mix ★★★★★
()
Ответ на: комментарий от special-k

dom вполне себе не плох

О, да.

element.parent.insertBefore(newElement, element);

Ну, да, оно хотя бы работает, и то плюс.

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

Это по твоему нормальные языки?

Конечно.

mix_mix ★★★★★
()
Ответ на: комментарий от special-k

В жкверях уже придумали что-то в духе element.before(newElement) или как там называется, не помню на память. Эту штуку теперь даже в DOM4 добавят. Почему сразу нельзя было так сделать?

Deleted
()
Ответ на: комментарий от special-k

Верх ясности там, в документации и правильном названии. Я тебе пишу по памяти, думаешь я помню как называется метод, которого ещё и вживых то нет?

Deleted
()
Ответ на: комментарий от special-k

element.parent.insertBefore(newElement, element); конечно, тоже верх ясности, лол. Будет там a.parent.insertBefore(b, a) с реальными переменными и что дальше?

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

Более очевидно было бы как-нибудь так

document.add(newEl, {after: el})
document.add(newEl, {before: el})
document.add(newEl, {to: el, onPlace: 2})
Но лишняя генерация объекта - не гуд :[

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

в coffee это было бы так

document.add newEl, to: el, onPlace: 2

Мало нам function(function(function(function()))) ты ещё усугубляешь (^ ^)'

О, я даже начинаю с этим бороться ^_^
Я написал вот такой обсервер, который может принимать не только функцию, но и стринг.

observer.bi 'eventName', 'funcName', context: @
observable.bi 'eventName', 'funcName'

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

+много.

Тсу: идеальные инструменты успешны либо в тоталитарных либо в сознательных(высоко) обществах.

иначе свестелки и .... оказывают решающее влияние на успешность любого(хорошего , плохого - не важно) продукта.

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

есть. :3 и довольно много. за подробностями читай мой предыдущий пост. (=

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

вообще, вёрстка — это тот ещё велосипедизм с костылями, но это мелочи.

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

а ячейки не умеют плавать. :3 помести блок-ячейку в блок-блок, дай ему плавать, и будет тебе велосипед щасьте!

Точнее ячейка начинает плавать но теряет способность выравнивать.)

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

Флоаты, AFAIR, превращается в display: block автоматически.

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

зная что формы будут генериться автоматически? Сколько надо было выпить чтобы придумать что не чекед чекбокс вообще не будет передаваться?

Да ты вообще не в теме.

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

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

overlay.css("display", "block");
getComputedStyle(overlay.get(0)).display;
setTimeout(function () {
  overlay.addClass("visible");
}, 0);

реально работает. как так можно делать спецификацию я не понимаю

ЗЫ transitionstart и webkitTransitionStart не работают. баги закрыты WONTFIX. люди сидят ждут когда исправят спецификацию

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

Стараюсь писать без него. Однако если надо какой-нибудь прикрутить лайтбокс тогда уже конечно jq и тогда начинаю его использовать. А если надо свое решение - пытаюсь выкрутиться сам.

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

Я тоже стараюсь, но выходит не всегда. Кстати говоря, обычный JS тоже этому потакает. Хочешь захватить переменную для события? Пиши функцию-враппер. «Удобно», что сказать.

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

Мне вообще кажется что транзишен не очень хорошая идея. Не дело это для css...

Suntechnic ★★★★★
() автор топика

Невольно задаешься вопросом, почему все эти люди которые создали всякие html, php, css и прочие js

этого говно придумали оопнутые ламеры, которые в принципе не понимают как работает железо

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