Имя: Пароль:
LIFE
Юмор
OFF: Пятничный холивар. Почему PHP это недоязык и php-программисты это недопрограммисты
,
0 sikuda
 
31.01.20
12:15
1. php ужасен 40% (4)
2. Срочно переходим на правильный язык ;) 40% (4)
3. php отвратителен 20% (2)
4. на нем невозможно программировать 0% (0)
5. в нем нет нормального ООП 0% (0)
Всего мнений: 10

PHP-сообщество на 90% состояло из людей, которые пишут, не задумываясь и вставляя в свои проекты куски непонятного кода — главное, чтобы работало.

Претензии:
    Модель работы с памятью.
    Отсутствие статической типизации.
    Особые воспоминания о глобальных переменных на весь проект.
    Необходимость «тащить» apache/nginx/php-fpm.
    Архитектура: запуститься — отработать — умереть.
    Нельзя компилировать ни во что: ни в исходный код, ни в промежуточный байт-код.

Наконец, из-за упомянутых недостатков и в целом немного странного синтаксиса на PHP очень просто написать некачественный код. Как следствие, с каждым годом становится все сложнее поддерживать крупные долгоживущие проекты на PHP: растет концентрация некачественного кода и «бутылочных горлышек»
141 Горностаев
 
02.02.20
12:48
(137)так пиши на Симфони. Или на Laravel.  Кто мешает писать качественный код? Патерны проектирования же есть. Есть некие стандарты. Нужно просто соблюдать их и учиться у тим лидов. Работать в команде, где делают коде ревью.  

А то что на php пишут и люди далекие от ООП, то это ничего не значит. На php можно писать и в процедурном стиле когда надо написать какой-нибудь простенький скрипт. Почему бы нет?
Лопатой тоже можно копать ямы, а можно использовать её как средство самозащиты - это уже дело личное каждого как что использовать. Но это не отменяет основных плюсов инструмента.

(140)ты даже не знаешь к чему я это написал...  Не буду с тобой даже ввязываться в разговор. с 1с-никами не спорю...
142 Garikk
 
02.02.20
13:02
(137) новый кобол это ява
143 Мэс33
 
02.02.20
13:04
Что за варианты ответов? Почему все 6 - негативные?
Php - и движки на нем - вполне нормально для своей ниши.
144 ДенисЧ
 
02.02.20
13:13
(141) "с 1с-никами не спорю"
Разумеется. Ума-то не хватает...
145 jbond
 
02.02.20
13:42
(143) потому что у php карма такая. Критиковать пых пых никогда не выйдет из моды.

php ужасен
146 jbond
 
02.02.20
13:48
(141) я уже тебе писал выше - фактически весь php - это адовая смесь легаси, родившееся еще во времена четверки. Там не то, что симфони не пристроишь, там не поймешь какую локальную переменную хотел завести ушедший программист, но почему то забыл.

И ничего там не изменишь - бизнес намертво прибит к коду такого качества.
147 dmitryds
 
02.02.20
13:58
(104) >>> ты будешь смеяться, но я программировал на серверной ноде.


значит плохо программировал.
148 sikuda
 
02.02.20
14:51
(136) Да ладно ;) Не мешай мне продолжать чувствовать мою неполноценность при переходе с1С Предприятия на 1С Bitrix ;)
149 Гобсек
 
02.02.20
14:54
(146) Разве на других языках программирования меньше го*нокода?
В том же 1С некоторые самописки посмотришь - офигеешь.
150 jbond
 
02.02.20
15:04
(147) ну да, проблемы кстати были не в самой ноде на сервере или JavaScript, как обычно критикуют,а в том, что даже руководители и сеньоры на проекте не знали, на какое именно NoSQL решение нужно перейти с ненавистного оракла.

Анекдот в среде нодистов знаешь? Встречаются Head Of IT и Head of HR одного крупного международного концерна.

HR: коллега, а почему вы указали искать на позицию программистов node.js школьников и сту без знания JavaScript, только npm?

HoIT: понимаете коллега, мы проанализировали проекты за последние два года и пришли к выводу, что зачем писать код на JS для очередной npm зависимости, если ее в следующем спринте удалят и заменят на новую или другую? В течении спринта можно ведь только выполнить две команды npm и все. Для этого даже знаний js не нужно.

Смех в зале..
151 Asmody
 
02.02.20
15:55
(146) код мисты, чего греха таить, это "адовая смесь легаси", только ещё хуже. На php. Поддерживать её крайне сложно.
Но это всё нисколько не мешает вам каждый день сидеть тут и трепаться "какое php дерьмо".
152 jbond
 
02.02.20
16:22
(151) ну я же говорил, бизнес намертво прибит к этому.
153 Garykom
 
гуру
02.02.20
16:48
(152) Просто переписать стоит денег которые всегда жалко если "и так все работает".
Хотя нихрена сложного переписать нет, когда уже есть прототип что надо получить в итоге.
154 ДенисЧ
 
02.02.20
17:00
(153) Начсёт "ничего сложного" - это только тогда, когда всё покрыто тестами на 146%. А где ты видел такие проекты?
155 jbond
 
02.02.20
17:07
Какие тесты? Какое переписать заново?

Есть некая вебшоп самописка на пхп четверке. Ни классов, иногде даже нет функций и локальных переменных. Самое современное там - шабоны смарти.

Вы действительно считаете, что туда может прилететь волшебник в голубом вертолете и поставит стандартное для локального рынка ecommerce решение, мигрирует данные, шаблоны и так далее?
156 jbond
 
02.02.20
17:11
Самое прикольное это то, что владельцы бизнеса с таким решением серьезно считают, что можно мигрировать за месяц на их "самописную платформу" стадартные модули вида amazon payments, paypal, social auth и прочее.

На разработку которых ушли годы.
157 Garykom
 
гуру
02.02.20
18:01
(155) Это реальная практика 1С которая постоянно решается.
Выкинуть устаревшее говно и поставить с переносом данных более современное из подходящих с допилкой/адаптацией.
158 Garykom
 
гуру
02.02.20
18:03
(156) Год разработки уходят на старых технологиях и когда пишут неизвестно что и неизвестно зачем.
Когда уже есть решение и его можно крутить-вертеть то никакие годы не нужны, хватит месяцев.
И технологии сильно продвинулись.
159 Garykom
 
гуру
02.02.20
18:03
(158)+ Но есть один минус. Старое работало даже на дерьмовом железе, новое потребует современное.
160 sikuda
 
03.02.20
00:19
(159) И про бурное изменение базовых функций не забудем
- ПоместитьФайл уст.
- НачатьПомещениеФайла
- НачатьПомещениеФайлаНаСервер
161 Integrator
 
03.02.20
04:15
(89) ООП в 1с сильно кастрированное, но все же есть. Например каждый документ в конфигураторе - фактически производный класс от базового «Документ». Всякие обработчики проведения - виртуальные функции. Дополнительные журналы - интерфейсы. С инкапсуляцией хуже, но скажем в питоне ее тоже нет. А кастрировали для того, что бы укушенные Александреску лишнего не наворотили. А так получается достаточно удачное разделение - платформа задает базовые классы, тупой и жадный одинэсник реализует производные, не слишком улетая в облака, и все довольны)
162 Гобсек
 
03.02.20
04:17
(161) +1
163 Integrator
 
03.02.20
04:23
(122) Девочка наверно все же «снеговик - говно» сказала. А в руках у нее было две клюшки.
164 Чики брики
 
03.02.20
07:00
(0) PHP был изначально придуман для работы с текстом. От этого он и унаследовал весь этот ужас. В новый РНР внедряют много чего хорошего. Если убрать обратную совместимость, то можно из PHP сделать нормальный язык, но тогда это уже не будет РНР.
Главное чтобы добавили возможность получать ссылку на функцию. Без этого он так и останется третьесортным языком для старичков.

php отвратителен
165 APXi
 
03.02.20
08:20
(32) OneScript развивай сам, а 1С это не нужно.
166 Сияющий в темноте
 
03.02.20
18:42
(164)там есть вызов функции по имени,а с учетом того,что php по-другому их ввзывать не умеет,то реализация ссылки потребует переделки механизма вызова,а всем важнее обратная совместимость по максимуму.
167 Asmody
 
03.02.20
19:26
(164) (166) вы оба отстали лет на 10
168 Asmody
 
03.02.20
19:29
169 Чики брики
 
04.02.20
07:33
(166) Я про то и говорю. Вызывать функцию по имени - это дичь.
(168) Приходится пользоваться этим костылем, городить говнокод там, где в нормальных ЯП можно получить ссылку на функцию напрямую.
170 Asmody
 
04.02.20
07:56
Вы просили анонимных функций и замыканий – они в php есть. Вы хотите функций первого класса – имеется. Зачем мне ссылка на функцию (хотя можно и это), если можно саму функцию куда нужно передать и выполнить?
171 Чики брики
 
04.02.20
08:02
(170) >> (хотя можно и это)
Как?

>> можно саму функцию куда нужно передать и выполнить?
Тоже интересно, как же?
172 Asmody
 
04.02.20
08:25
(171) я ж говорю - вы отстали лет на 10
173 MyNick
 
04.02.20
09:12
(146) "я уже тебе писал выше - фактически весь php - это адовая смесь легаси, родившееся еще во времена четверки. Там не то, что симфони не пристроишь, там не поймешь какую локальную переменную хотел завести ушедший программист, но почему то забыл.
И ничего там не изменишь - бизнес намертво прибит к коду такого качества."

Ну в некоторых конторах Тис на 7.7 крутится по 20 лет. Можно представить о хитросплетениях легаси. Которого не так много, как он очень непонятно увязан и ооочень нестабилен. Но это же не значит что "1С ужасен". Просто берем и переписываем, взяв за основу какую нибудь УНФ и докрутив печатных форм с обработками за пару недель.

Также и здесь. Нафига погружаться в какахи с прошлого века на прошлых технологиях. Берем фреймворк, который из коробки в несколько строк поддерживает все то что написано в 95% кода того легаси. Остается только выдернуть 5% (ту самую бизнес логику) и реализовать ее.
Пых - норм. Только $ бесят.
174 NorthWind
 
04.02.20
10:12
> Просто берем и переписываем, взяв за основу какую нибудь УНФ и докрутив печатных форм с обработками за пару недель.

И через несколько лет все будут тыкать пальцем и плеваться - блин, легаси, вроде и немного, но нихера непонятно...
175 TStan
 
04.02.20
10:37
"Для каждой задачи свои плоскогубцы", как говорит один знакомый, достаточно толковый прог на пхп

Срочно переходим на правильный язык ;)
176 Fragster
 
гуру
05.02.20
14:57
(171)
https://www.php.net/manual/ru/function.array-filter и прочие js подобные функции для коллекций, которых ой как не хватает в 1с
177 pechkin
 
05.02.20
15:29
(176) в пхп поддерживаются замыкания?
178 ДенисЧ
 
05.02.20
15:34
(177) св (168)
179 Fragster
 
гуру
05.02.20
15:42
(177) вот наговнокодил когда-то преобразование таблицы с id и parent_id в дерево https://gist.github.com/FragsterAt/9d16e30b508c305b1ae6921e4bd33c63
180 Fragster
 
гуру
05.02.20
15:44
в 8-9 строке замыкание, если я правильно понимаю терминогогию :)
181 Sasha_1CK
 
05.02.20
15:54
(173)  " Ну в некоторых конторах Тис на 7.7 крутится по 20 лет. Можно представить о хитросплетениях легаси. Которого не так много, как он очень непонятно увязан и ооочень нестабилен. Но это же не значит что "1С ужасен". Просто берем и переписываем, взяв за основу какую нибудь УНФ и докрутив печатных форм с обработками за пару недель."

Да вы батенька оптимист. там где 7.7 крутится по 20 лет  с хитросплетениями - иногда и двух лет не хватает.
182 ДенисЧ
 
05.02.20
16:20
foreach ($sectionBranch as $k => $sectionLeave) {
                $sectionLeave->children = array_values(array_filter($sectionArray, function ($item) use ($sectionLeave) {
                    return $item->parent_id == $sectionLeave->id;
                }));
                makeTree($sectionLeave->children, $sectionArray);
                $sectionBranch[$k] = $sectionLeave;
            }


И эти люди хають тёплый ласковый питончег...
183 Asmody
 
05.02.20
16:53
(182) Попробывали бы они зделать такое в  ̶м̶и̶ч̶е̶т̶и̶ java
184 sevod
 
05.02.20
17:10
PHP хейтят только динозавры отставшие от жизни. Типизация есть, ООП допилили, пространство имен добавили. Попытка запихнуть питон в вэб провалилась. PHP уделывает его по скорости как стоячего. В ближайшее время питон в вэбе уйдет на позиции Руби. Ни живой не мертвый. А если в 8-ку реально jit добавят, то еще и хейтить будут.
Сейчас JS и питон недоязыки рядом с php. Вернее JS всегда таким был, но из за выросших ЗП сейчас об этом молчат. Ну а достоинства Питона только в голове пайтонутых на всю голову.
Про 1С не буду писать, рядом с ней все ущербно. Не все в состоянии это осознать, но отнесемся к этим людям с пониманием.
185 jbond
 
05.02.20
17:33
Тебе же написали выше: да, язык ушел дальше, но остался легаси код. Прибитый намертво к бизнесу. Там не то что неймспейсов и трейтов, там локальных переменных нет.

И остались программисты, которые этот код писали.
186 Garikk
 
05.02.20
17:38
(184) <Ну а достоинства Питона только в голове пайтонутых на всю голову. >
достоинства питона в том что разрабы стоят дешевле явистов и разработка занимает раза в два меньше времени
187 Garikk
 
05.02.20
17:38
(186) (потом правда очумеешь итоговый проект поддерживать, но об этом не думают)
188 jbond
 
05.02.20
17:39
Причем может доходить до того, что тебя будут бить по рукам за попытку перейти на композер. Так как другие программисты его цитата "не понимают".
189 sevod
 
05.02.20
17:44
(185) Это же хорошо что в php одни недопрограммисты. Можно умным на их фоне казаться :)
Ну а легаси... дерьма везде хватает. В чужом коде лазить всегда мало приятного.
(188) А в таких местах надо работать? Мне кажется 1С-ки такие места "на запах" определят с порога. Опыт общения с людьми серьезный.
190 Василий Алибабаевич
 
05.02.20
18:52
"Почему ... php-программисты это недопрограммисты". А что там программировать? Для чего в 1с нужно штучки три общих модуля накропать в пхп одной строчкой кода обойтись можно. Что там программировать?
191 Сияющий в темноте
 
06.02.20
01:41
реально,ссылка на функцию есть только в ассемблере Call Eax
в остальных же языках этот процесс требует некоторой подготовки и потери скорости выполнения.

и,любой интерпретируемый язык имеет функцию типа eval,для решения множества проблем.
вот,с компиллируемыми в нормальеый исполняемый код языками сложнее,так как код не знает,на каком языке он был написан.
192 GANR
 
06.02.20
06:59
Зато в языке 1С прямо-таки всё офигенно. Отпааад...
193 Сияющий в темноте
 
06.02.20
09:01
(192)ну да,вместо указателя на функцию придумали описание оповещения,где передается и функция и контекст как параметр
очень спорное решение,но из-за неимения другого получается как с мышами и кактусом.
194 jbond
 
06.02.20
10:07
А являются ли программисты Salesforce/Apex недопрограммистами?
195 jbond
 
06.02.20
10:10
Апекс же ведь это жалкое подобие  Java 11. Там даже ООП нет. Или все таки есть?
196 jbond
 
06.02.20
11:30
(182) - спасибо за вызов рвотных рефлексов. Вы сэкономили мне на покупке лекарства
197 sevod
 
06.02.20
13:57
(182) не хают, а считают бесполезной вещью в вебе.
198 Fragster
 
гуру
06.02.20
14:15
(196) ну а чо там сильно не так? я только за == вместо === и array_values(array_filter( сомневаюсь
199 Fragster
 
гуру
06.02.20
14:16
и то, второе, вроде, потому что array_filter индексы не по порядку оставляет
200 formista2000
 
06.02.20
14:28
200!
201 jbond
 
06.02.20
16:27
400!
202 SinteZaR
 
06.02.20
17:05
(184) по вашему 1С лучше чем любой язык программирования и изучать лучше его? а почему можете аргументировать?
203 Пивец
 
06.02.20
17:30
(172) То есть такого примера не существует? Понятно все.
204 Fragster
 
гуру
06.02.20
17:34
(203) -> (176)
205 Fragster
 
гуру
06.02.20
17:35
+ в (179) и (182) цитата оттуда, в array_filter передается лямбда функция с замыканием
function ($item) use ($sectionLeave) {........
206 TheRoofIsOn Fire
 
06.02.20
19:36
Я в одной книжке по программированию как то прочитал. Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.
зы
голосовалка го вно, аффтар выпей яду.
207 TheRoofIsOn Fire
 
06.02.20
19:42
" Модель работы с памятью.
    Отсутствие статической типизации.
    Особые воспоминания о глобальных переменных на весь проект.
    Необходимость «тащить» apache/nginx/php-fpm.
    Архитектура: запуститься — отработать — умереть.
    Нельзя компилировать ни во что: ни в исходный код, ни в промежуточный байт-код." а зачем это все для скриптового языка? Который по сути является программируемым интерфейсом к веб серверу. Все поставленные перед ним задачи язык выполняет.
ps
хотя я бы не хотел на нем программировать, он меня раздражает чисто эстетически, но это уже возрастное.
208 sevod
 
06.02.20
19:45
(202) Для "ларьков", мелкого и среднего бизнеса, для крупного бизнеса (не корпорации), просто без вариантов. 1С лучший. Но вот для программистов нет :)
Выбирать надо то, чем будешь заниматься. Телефончики, или сайтики, или синхофазатрон моделировать...  или за бухами подтирать. Ну а уже потом думать какой язык/платформа. Кому то действительно нравится с людьми общаться, тогда 1С в самый раз. А кому то хочется уткнуться в монитор и никого не видеть и не слышать. Тогда это точно не 1С.
209 sevod
 
06.02.20
19:52
(207) Ты из десятилетней заморозки вылез? Почти все из того что ты написал, уже не так. Даже jit на подходе.
Ну и главное, нравится кому то php или нет, под вэб будешь использовать его. Руби скорее мертв, чем жив. Пайтон в вэбе помер не родившись. java, c# и прочие подобные языки, это хороший способ дать проекту умереть от старости.
210 sevod
 
06.02.20
19:54
(207) Я твою цитату не понял :)
211 Злопчинский
 
06.02.20
19:57
(208) фузину же забыл
212 TheRoofIsOn Fire
 
06.02.20
21:05
(209) Ашманов говорил, что народ теперь только заголовки читает, а этот даже заголовков не читает.  акуеть.
213 Sysanin_1ц
 
06.02.20
21:11
(0) php сродни 1с. Специализированная среда только для веб. Учить легко. Специалистов много. Конкуренция большая. Работая с ним с голоду не умрешь, но и сильно жировать не будешь. Оба этих языка занимают топы в листах хейт парадов.
214 Волшебник
 
модератор
06.02.20
21:24
(206) Хорошо сказано
215 vovastar
 
06.02.20
21:53
(211) шел 2020 год....Робот Ваня раскопал раскопал летопись Великого народа Белорусского, там, было выбито 6 букв.
216 sevod
 
07.02.20
10:24
(212) как пишут, так читают.
217 TheRoofIsOn Fire
 
07.02.20
11:46
(214) Можете в список примудростей, который внизу страницы выплывает забрать. На авторство я не претендую. Тем более к 1Су это даже больше подходит, чем к php. Кстати такое вычитал в книге про джава скрипт. Тоже язык "эстеты"  ругали, но почему то на нем 99.99 процентов всего браузерного кода написано.
218 ДенисЧ
 
07.02.20
11:52
(217) "но почему то на нем 99.99 процентов всего браузерного кода написано"

Назови другой язык, на котором можно писать код в браузере...
219 TheRoofIsOn Fire
 
07.02.20
11:58
(218) да скриптовых языков туча, vs и ws(не уверен что их два) и даже на джаве писать пытались.
220 Asmody
 
07.02.20
11:58
(218) ELM
221 pechkin
 
07.02.20
12:00
(220) онлайн редактор - это не писать в браузере
222 sikuda
 
07.02.20
12:00
(0) В прошлую пятницу у меня было плохое настроение, и я решил постебаться над вечным нытьем что 1С это недопрограммирование, под горячую руку попался рабочий php. Спасибо всем за поддержку! А те кто технические тонкости обсуждает - отдельное спасибо.
223 Asmody
 
07.02.20
12:01
(220)+ и ещё ClojureScript. На них даже пишут π человек
224 sikuda
 
07.02.20
12:05
(221) Я не понял? редактор 1С в браузере это наезд?
https://www-1c.ru/wp-content/plugins/codemirror1c/

Срочно переходим на правильный язык ;)
225 Asmody
 
07.02.20
12:06
ВЫ не поверите, но ещё на 1С можно браузерный код писать :)
226 ДенисЧ
 
07.02.20
12:10
(219) Назови такие, что можно написать и не париться транспиляцией.
(223) в каких броузерах он работает?
227 ДенисЧ
 
07.02.20
12:10
(225) не поверю. Всё равно в итоге жиэс получится.
228 TheRoofIsOn Fire
 
07.02.20
12:14
(226) Ну и задачи вы ставите барин. Я что  языковед? Но слышал что этих XXX Script бесконечное множество и многие из них пытались использовать в браузерах. И даже пытались использовать не script, а типа тру языки, но они тоже сдохли.
229 ДенисЧ
 
07.02.20
12:14
(228) Ну вот и ответ...
230 Asmody
 
07.02.20
12:16
(227) В итоге всё в машинных кодах. Это же не мешает писать на всяком.
231 ДенисЧ
 
07.02.20
12:17
(230) Всё равно что-то исполняется на браузере. В каких браузерах исполняется кложаскрипт?
232 Asmody
 
07.02.20
12:20
Еще можно в WASM компилировать. Современными браузерами оно поддерживается.
233 Fragster
 
гуру
07.02.20
12:22
(231) либо что-то можно в js превратить (cofee- и typescript), либо можно скомпилитьb и заюзать в браузере через webassembly (не доступ к DOM, а обмен сообщениями с js на странице), например распознавалки штрихкодов так сделаны.
234 Fragster
 
гуру
07.02.20
12:22
(232) wasm и web assembly немного разные вещи.
235 Asmody
 
07.02.20
12:23
(234) Тут https://webassembly.org/ с тобой не согласны
236 Garikk
 
07.02.20
12:23
(234) цитата с вики
"WebAssembly (often shortened to Wasm) is an open standard that defines a portable binary code format for executable programs,"
237 ДенисЧ
 
07.02.20
12:24
С васмом согласен... Но, судя по дискуссиям на рсдн, он ещё не готов.
238 Fragster
 
гуру
07.02.20
12:32
хм... попутал с http://asmjs.org/
239 Fragster
 
гуру
07.02.20
12:32
который как бы js, но ограниченный и из-за этого интерпретируется сильно поизводительней
240 sikuda
 
07.02.20
15:15
Ну и видео в тему: https://youtu.be/mSBWxc73qLc